modify code

pull/6/head
左程云 4 years ago
parent 5a7f8d08f7
commit 1aeb05cedd

@ -8,6 +8,8 @@ public class Code02_LongestSumSubArrayLength {
if (arr == null || arr.length == 0) { if (arr == null || arr.length == 0) {
return 0; return 0;
} }
// key:前缀和
// value : 0~value这个前缀和是最早出现key这个值的
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(0, -1); // important map.put(0, -1); // important
int len = 0; int len = 0;

@ -19,12 +19,10 @@ public class Code03_LongestLessSumSubArrayLength {
minSumEnds[i] = i; minSumEnds[i] = i;
} }
} }
// 迟迟扩不进来那一块儿的开头位置
int end = 0; int end = 0;
int sum = 0; int sum = 0;
int res = 0; int ans = 0;
// i是窗口的最左的位置end扩出来的最右有效块儿的最后一个位置的再下一个位置
// end也是下一块儿的开始位置
// 窗口:[i~end)
for (int i = 0; i < arr.length; i++) { for (int i = 0; i < arr.length; i++) {
// while循环结束之后 // while循环结束之后
// 1) 如果以i开头的情况下累加和<=k的最长子数组是arr[i..end-1]看看这个子数组长度能不能更新res // 1) 如果以i开头的情况下累加和<=k的最长子数组是arr[i..end-1]看看这个子数组长度能不能更新res
@ -33,14 +31,14 @@ public class Code03_LongestLessSumSubArrayLength {
sum += minSums[end]; sum += minSums[end];
end = minSumEnds[end] + 1; end = minSumEnds[end] + 1;
} }
res = Math.max(res, end - i); ans = Math.max(ans, end - i);
if (end > i) { // 窗口内还有数 [i~end) [4,4) if (end > i) { // 还有窗口,哪怕窗口没有数字 [i~end) [4,4)
sum -= arr[i]; sum -= arr[i];
} else { // 窗口内已经没有数了说明从i开头的所有子数组累加和都不可能<=k } else { // i == end, 即将 i++, i > end, 此时窗口概念维持不住了所以end跟着i一起走
end = i + 1; end = i + 1;
} }
} }
return res; return ans;
} }
public static int maxLength(int[] arr, int k) { public static int maxLength(int[] arr, int k) {

@ -21,8 +21,7 @@ public class Code07_ZigZagPrintMatrix {
System.out.println(); System.out.println();
} }
public static void printLevel(int[][] m, int tR, int tC, int dR, int dC, public static void printLevel(int[][] m, int tR, int tC, int dR, int dC, boolean f) {
boolean f) {
if (f) { if (f) {
while (tR != dR + 1) { while (tR != dR + 1) {
System.out.print(m[tR++][tC--] + " "); System.out.print(m[tR++][tC--] + " ");

@ -40,7 +40,7 @@ public class Code08_PrintStar {
} }
public static void main(String[] args) { public static void main(String[] args) {
printStar(8); printStar(5);
} }
} }

Loading…
Cancel
Save