摘要:
暴力: final int mod = 1000000007; int an = 0; public final int kConcatenationMaxSum(int[] arr, int k) { int length = arr.length; int newLength = length 阅读全文
摘要:
JAVA 回溯解法: public final String[] permutation(String s) { Set<String> reSet = new HashSet<String>(); search(s, 0, reSet, new StringBuilder(), new HashS 阅读全文
摘要:
回溯题目,JAVA 实现: public final String[] permutation(String S) { Set<String> reSet = new HashSet<String>(); permutation(S.toCharArray(), new StringBuilder( 阅读全文
摘要:
回溯解法,java: public final List<List<String>> partition(String s) { List<List<String>> reList = new LinkedList<List<String>>(); partition(s, 0, new Stack 阅读全文
摘要:
动态规划的核心是找到解题路径中的重复子问题,避免重复计算。 找出问题间的递归关系,用问题解决问题需要培养归纳的思维。 问题定义的好坏直接影响到可以定位出的重叠子问题的多少,可以找出的重叠子问题越多,问题定义越好。 下面是两种问题的定义,效率差距非常大。 解法1,超时: public final in 阅读全文
摘要:
缓存分治: public final double largestSumOfAverages(int[] A, int K) { int len = A.length; double re = largest(A, K, 0, len - 1, new double[len][len][K + 1] 阅读全文