From dc11e1605e747b68d378d07a21031dca56a5ac61 Mon Sep 17 00:00:00 2001 From: algorithmzuo Date: Wed, 31 Mar 2021 23:27:55 +0800 Subject: [PATCH] modify code --- src/class45/Code01_InsertS2MakeMostAlphabeticalOrder.java | 3 ++- src/class45/Code02_CreateMaximumNumber.java | 3 ++- .../Code03_LongestCommonSubstringConquerByHeight.java | 8 +++++--- .../Code03_MaxSumLengthNoMore.java} | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) rename src/{class45/Code04_MaxSumLengthNoMore.java => class47/Code03_MaxSumLengthNoMore.java} (97%) diff --git a/src/class45/Code01_InsertS2MakeMostAlphabeticalOrder.java b/src/class45/Code01_InsertS2MakeMostAlphabeticalOrder.java index adc697f..0962781 100644 --- a/src/class45/Code01_InsertS2MakeMostAlphabeticalOrder.java +++ b/src/class45/Code01_InsertS2MakeMostAlphabeticalOrder.java @@ -243,9 +243,10 @@ public class Code01_InsertS2MakeMostAlphabeticalOrder { } } System.out.println("功能测试结束"); + System.out.println("=========="); - System.out.println("性能测试开始"); + System.out.println("性能测试开始"); int s1Len = 1000000; int s2Len = 500; String s1 = randomNumberString(s1Len, range); diff --git a/src/class45/Code02_CreateMaximumNumber.java b/src/class45/Code02_CreateMaximumNumber.java index 72b2830..1e9cc28 100644 --- a/src/class45/Code02_CreateMaximumNumber.java +++ b/src/class45/Code02_CreateMaximumNumber.java @@ -12,6 +12,8 @@ public class Code02_CreateMaximumNumber { int[] res = new int[k]; int[][] dp1 = getdp(nums1); // 生成dp1这个表,以后从nums1中,只要固定拿N个数, int[][] dp2 = getdp(nums2); + // get1 从arr1里拿的数量 + // K - get1 从arr2里拿的数量 for (int get1 = Math.max(0, k - len2); get1 <= Math.min(k, len1); get1++) { // arr1 挑 get1个,怎么得到一个最优结果 int[] pick1 = maxPick(nums1, dp1, get1); @@ -223,7 +225,6 @@ public class Code02_CreateMaximumNumber { int pick = arr.length + 1; // 1 ~ N int[][] dp = new int[size][pick]; // get 不从0开始,因为拿0个无意义 - // get 1 for (int get = 1; get < pick; get++) { // 1 ~ N int maxIndex = size - get; // i~N-1 diff --git a/src/class45/Code03_LongestCommonSubstringConquerByHeight.java b/src/class45/Code03_LongestCommonSubstringConquerByHeight.java index 042af59..2b92fff 100644 --- a/src/class45/Code03_LongestCommonSubstringConquerByHeight.java +++ b/src/class45/Code03_LongestCommonSubstringConquerByHeight.java @@ -78,9 +78,9 @@ public class Code03_LongestCommonSubstringConquerByHeight { int[] height = dc3.height; int ans = 0; for (int i = 1; i < n; i++) { - int up = sa[i - 1]; - int down = sa[i]; - if (Math.min(up, down) < N && Math.max(up, down) > N) { + int Y = sa[i - 1]; + int X = sa[i]; + if (Math.min(X, Y) < N && Math.max(X, Y) > N) { ans = Math.max(ans, height[i]); } } @@ -213,6 +213,7 @@ public class Code03_LongestCommonSubstringConquerByHeight { private int[] height(int[] s) { int n = s.length; int[] ans = new int[n]; + // 依次求h[i] , k = 0 for (int i = 0, k = 0; i < n; ++i) { if (rank[i] != 0) { if (k > 0) { @@ -222,6 +223,7 @@ public class Code03_LongestCommonSubstringConquerByHeight { while (i + k < n && j + k < n && s[i + k] == s[j + k]) { ++k; } + // h[i] = k ans[rank[i]] = k; } } diff --git a/src/class45/Code04_MaxSumLengthNoMore.java b/src/class47/Code03_MaxSumLengthNoMore.java similarity index 97% rename from src/class45/Code04_MaxSumLengthNoMore.java rename to src/class47/Code03_MaxSumLengthNoMore.java index f9d7c8c..8e4878a 100644 --- a/src/class45/Code04_MaxSumLengthNoMore.java +++ b/src/class47/Code03_MaxSumLengthNoMore.java @@ -1,10 +1,10 @@ -package class45; +package class47; import java.util.LinkedList; // 给定一个数组arr,和一个正数M // 返回在子数组长度不大于M的情况下,最大的子数组累加和 -public class Code04_MaxSumLengthNoMore { +public class Code03_MaxSumLengthNoMore { // O(N^2)的解法,暴力解,用作对数器 public static int test(int[] arr, int M) {