Skip to content

Commit 1aeb05c

Browse files
committed
modify code
1 parent 5a7f8d0 commit 1aeb05c

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

src/class40/Code02_LongestSumSubArrayLength.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public static int maxLength(int[] arr, int k) {
88
if (arr == null || arr.length == 0) {
99
return 0;
1010
}
11+
// key:前缀和
12+
// value : 0~value这个前缀和是最早出现key这个值的
1113
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
1214
map.put(0, -1); // important
1315
int len = 0;

src/class40/Code03_LongestLessSumSubArrayLength.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ public static int maxLengthAwesome(int[] arr, int k) {
1919
minSumEnds[i] = i;
2020
}
2121
}
22+
// 迟迟扩不进来那一块儿的开头位置
2223
int end = 0;
2324
int sum = 0;
24-
int res = 0;
25-
// i是窗口的最左的位置,end扩出来的最右有效块儿的最后一个位置的,再下一个位置
26-
// end也是下一块儿的开始位置
27-
// 窗口:[i~end)
25+
int ans = 0;
2826
for (int i = 0; i < arr.length; i++) {
2927
// while循环结束之后:
3028
// 1) 如果以i开头的情况下,累加和<=k的最长子数组是arr[i..end-1],看看这个子数组长度能不能更新res;
@@ -33,14 +31,14 @@ public static int maxLengthAwesome(int[] arr, int k) {
3331
sum += minSums[end];
3432
end = minSumEnds[end] + 1;
3533
}
36-
res = Math.max(res, end - i);
37-
if (end > i) { // 窗口内还有数 [i~end) [4,4)
34+
ans = Math.max(ans, end - i);
35+
if (end > i) { // 还有窗口,哪怕窗口没有数字 [i~end) [4,4)
3836
sum -= arr[i];
39-
} else { // 窗口内已经没有数了,说明从i开头的所有子数组累加和都不可能<=k
37+
} else { // i == end, 即将 i++, i > end, 此时窗口概念维持不住了,所以end跟着i一起走
4038
end = i + 1;
4139
}
4240
}
43-
return res;
41+
return ans;
4442
}
4543

4644
public static int maxLength(int[] arr, int k) {

src/class40/Code07_ZigZagPrintMatrix.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ public static void printMatrixZigZag(int[][] matrix) {
2121
System.out.println();
2222
}
2323

24-
public static void printLevel(int[][] m, int tR, int tC, int dR, int dC,
25-
boolean f) {
24+
public static void printLevel(int[][] m, int tR, int tC, int dR, int dC, boolean f) {
2625
if (f) {
2726
while (tR != dR + 1) {
2827
System.out.print(m[tR++][tC--] + " ");

src/class40/Code08_PrintStar.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static void set(char[][] m, int leftUp, int rightDown) {
4040
}
4141

4242
public static void main(String[] args) {
43-
printStar(8);
43+
printStar(5);
4444
}
4545

4646
}

0 commit comments

Comments
 (0)