import java.util.*;//郵局選址問題public class PostOfficeArr{ //(1)動態規劃法 public static int minDistances1(int[] arr, int num) { if (arr == null || num < 1 || arr.length < num) { return 0; } int[][] w = new int[arr.
import java.util.*;//畫匠問題public class PainterProblem{ //(1)獲得完成所有畫作所需要的最少時間(動態規劃的方法) public static int getTime(int[]arr,int num){ if(arr==null||arr.length==0||num<1) { throw new RuntimeException("輸入參數錯誤!");
//丟棋子問題public class ThrowChessProblem{ //(1)遞迴的方式計算(時間複雜度為O(n!)) public static int solution1(int nlevel,int kchess){ if(nlevel<1||kchess<1){ return 0; } return process1(nlevel,kchess); } public
//public class StringProblem{ //Manacher演算法 預先處理 public static char[] manacherString(String str) { char[] charArr = str.toCharArray(); char[] res = new char[str.length() * 2 + 1]; int index = 0; for (int i = 0; i !
import java.util.HashMap;//出現次數top K的進階問題public class TopKAdvanceProblem{ //堆節點定義 public static class Node { public String str; public int times; public Node(String s, int t) { str = s; times = t;
import java.util.*;import java.util.Map.*;//出現次數的top k問題public class GetTopKProblem{ //堆節點定義 public static class Node{ public String str; public int times; public Node(String s,int t){ str=s;