diff --git a/data/progress.txt b/data/progress.txt index 47d5d3b5..c800aaaa 100644 --- a/data/progress.txt +++ b/data/progress.txt @@ -1,4 +1,4 @@ -20240611: +20240619: 48 20240610: 22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp 20240609: 236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo) 20240608: 503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77 diff --git a/data/to_review.txt b/data/to_review.txt index b4d3b440..f8870d41 100644 --- a/data/to_review.txt +++ b/data/to_review.txt @@ -1,4 +1,4 @@ -2024-08-05 -> [''] +2024-08-13 -> ['48'] 2024-08-04 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp'] 2024-08-03 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)'] 2024-08-02 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77'] @@ -10,7 +10,7 @@ 2024-07-27 -> ['127,742(again),133(again),207(ok*),261(ok)'] 2024-07-26 -> ['128,261'] 2024-07-25 -> ['005,003(again)'] -2024-07-23 -> ['11,647,261(again),133(again)'] +2024-07-23 -> ['48', '11,647,261(again),133(again)'] 2024-07-22 -> ['143,15,268,141,139'] 2024-07-21 -> ['21,20,19,271,269'] 2024-07-20 -> ['417(again),33,153,152'] @@ -18,39 +18,39 @@ 2024-07-18 -> ['55,54(todo),53(again),435(again),49,48(todo),300(again)'] 2024-07-17 -> ['56'] 2024-07-16 -> ['62,572,57'] -2024-07-15 -> ['', '322,191,190'] +2024-07-15 -> ['322,191,190'] 2024-07-14 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '73,200,70,323(again)'] 2024-07-13 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '207,79,206,213,198'] 2024-07-12 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '212(todo),211,338,208(again)'] 2024-07-11 -> ['235(ok),236(again),496(ok),110(ok),1448(again!)', '347,253(todo),91(todo),217'] -2024-07-10 -> ['206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '226,98,253(todo)'] +2024-07-10 -> ['48', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '226,98,253(todo)'] 2024-07-09 -> ['150,22(again),739(again!!!),needcode_linkedlist', '104,230,102,100'] 2024-07-08 -> ['567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '105,106'] 2024-07-07 -> ['146,460,582(ok*),139(ok),322(todo)', '242,235'] 2024-07-06 -> ['127,742(again),133(again),207(ok*),261(ok)', '371'] 2024-07-05 -> ['128,261', '121,252'] 2024-07-04 -> ['005,003(again)', '125'] -2024-07-02 -> ['', '11,647,261(again),133(again)'] +2024-07-02 -> ['48', '11,647,261(again),133(again)'] 2024-07-01 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '143,15,268,141,139'] 2024-06-30 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '21,20,19,271,269'] 2024-06-29 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '417(again),33,153,152'] 2024-06-28 -> ['235(ok),236(again),496(ok),110(ok),1448(again!)', '424,297(todo),295(todo),39'] -2024-06-27 -> ['206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '55,54(todo),53(again),435(again),49,48(todo),300(again)'] +2024-06-27 -> ['48', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '55,54(todo),53(again),435(again),49,48(todo),300(again)'] 2024-06-26 -> ['150,22(again),739(again!!!),needcode_linkedlist', '56'] 2024-06-25 -> ['567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '62,572,57'] -2024-06-24 -> ['', '146,460,582(ok*),139(ok),322(todo)', '322,191,190'] +2024-06-24 -> ['48', '146,460,582(ok*),139(ok),322(todo)', '322,191,190'] 2024-06-23 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '127,742(again),133(again),207(ok*),261(ok)', '73,200,70,323(again)'] -2024-06-22 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '128,261', '207,79,206,213,198'] -2024-06-21 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '005,003(again)', '212(todo),211,338,208(again)'] -2024-06-20 -> ['235(ok),236(again),496(ok),110(ok),1448(again!)', '347,253(todo),91(todo),217'] -2024-06-19 -> ['', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '11,647,261(again),133(again)', '226,98,253(todo)'] +2024-06-22 -> ['48', '236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '128,261', '207,79,206,213,198'] +2024-06-21 -> ['48', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '005,003(again)', '212(todo),211,338,208(again)'] +2024-06-20 -> ['48', '235(ok),236(again),496(ok),110(ok),1448(again!)', '347,253(todo),91(todo),217'] +2024-06-19 -> ['206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '11,647,261(again),133(again)', '226,98,253(todo)'] 2024-06-18 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '150,22(again),739(again!!!),needcode_linkedlist', '143,15,268,141,139', '104,230,102,100'] 2024-06-17 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '21,20,19,271,269', '105,106'] -2024-06-16 -> ['', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '146,460,582(ok*),139(ok),322(todo)', '417(again),33,153,152', '242,235'] +2024-06-16 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '146,460,582(ok*),139(ok),322(todo)', '417(again),33,153,152', '242,235'] 2024-06-15 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '235(ok),236(again),496(ok),110(ok),1448(again!)', '127,742(again),133(again),207(ok*),261(ok)', '424,297(todo),295(todo),39', '371'] -2024-06-14 -> ['', '236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '128,261', '55,54(todo),53(again),435(again),49,48(todo),300(again)', '121,252'] -2024-06-13 -> ['', '22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '150,22(again),739(again!!!),needcode_linkedlist', '005,003(again)', '56', '125'] -2024-06-12 -> ['', '22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '235(ok),236(again),496(ok),110(ok),1448(again!)', '567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '62,572,57'] +2024-06-14 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '128,261', '55,54(todo),53(again),435(again),49,48(todo),300(again)', '121,252'] +2024-06-13 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '150,22(again),739(again!!!),needcode_linkedlist', '005,003(again)', '56', '125'] +2024-06-12 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '235(ok),236(again),496(ok),110(ok),1448(again!)', '567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '62,572,57'] 2024-06-11 -> ['22(ok*),207(ok*),210(todo),323(again),547(todo),684(todo),needcode_1d_dp', '236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '146,460,582(ok*),139(ok),322(todo)', '11,647,261(again),133(again)', '322,191,190'] 2024-06-10 -> ['236(again*),1448(again),needcode_trie,208(ok*),needcode_graph,695,22(todo),981(todo),261(todo)', '503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '235(ok),236(again),496(ok),110(ok),1448(again!)', '150,22(again),739(again!!!),needcode_linkedlist', '127,742(again),133(again),207(ok*),261(ok)', '143,15,268,141,139', '73,200,70,323(again)'] 2024-06-09 -> ['503(todo),739(ok),105(todo),needcode_heap_pq,1046,215,needcode_backtrack,78,39(todo),46,90(todo),77', '235(ok),236(again),496(ok),110(ok),1448(again!)', '206,143,138(again),141,needcode_tree,226,104,110(again!!!)', '567(todo),needcode_array_hash,needcode_sliding_window,567(again),needcode_stack,155(again)', '128,261', '21,20,19,271,269', '207,79,206,213,198'] diff --git a/leetcode_java/src/main/java/LeetCodeJava/Array/RotateImage.java b/leetcode_java/src/main/java/LeetCodeJava/Array/RotateImage.java index 2fa9d573..981ef11f 100644 --- a/leetcode_java/src/main/java/LeetCodeJava/Array/RotateImage.java +++ b/leetcode_java/src/main/java/LeetCodeJava/Array/RotateImage.java @@ -35,6 +35,25 @@ public void rotate(int[][] matrix){ int width = matrix[0].length; // Step 1) : mirror ([i, j] -> [j, i]) + /** + * Example : + * + * matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] + * + * so, below double loop will visit : + * + * (0,1), (0,2), (0,3) + * (1,2), (1,3) + * (2,3 + * + */ + /** NOTE !!! + * + * for (int i = 0; i < len; i++) + * for (int j = i+1; j < width; j++) + * + * (j start from i+1) + */ for (int i = 0; i < len; i++){ for (int j = i+1; j < width; j++){ int tmp = matrix[i][j]; diff --git a/leetcode_java/src/main/java/dev/workSpace4.java b/leetcode_java/src/main/java/dev/workSpace4.java index 4b902e84..a9b02b3b 100644 --- a/leetcode_java/src/main/java/dev/workSpace4.java +++ b/leetcode_java/src/main/java/dev/workSpace4.java @@ -251,6 +251,16 @@ public static void main(String[] args) { String mystr = "(())"; //"()))"; System.out.println(wp.isValidP(mystr)); + + System.out.println("matrix for loop testing --------------"); + int l = 4; + int w = 4; + for (int i = 0; i < l; i++){ + for (int j = i+1; j < w; j++){ + System.out.println("i = " + i + ", j = " + j); + } + } + } public boolean isValidP(String input){ diff --git a/leetcode_java/src/main/java/dev/workspace3.java b/leetcode_java/src/main/java/dev/workspace3.java index 7829e09d..66439654 100644 --- a/leetcode_java/src/main/java/dev/workspace3.java +++ b/leetcode_java/src/main/java/dev/workspace3.java @@ -5070,6 +5070,82 @@ public int unionFind_(int x, int[] parents){ return parents[x]; } + /** + * Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] + * Output: [[7,4,1],[8,5,2],[9,6,3]] + * + * + * + * step 1) + * + * i, j -> j, i + * + * [ + * [1,4,7], + * [2,5,8], + * [3,6,9] + * ] + * + * step 2) + * + * inverse + * + * [ + * [7,4,1], + * [8,5,2], + * [9,6,3] + * ] + * + * + */ + + // LC 48 + public void rotate(int[][] matrix) { + + if (matrix.length == 0 || matrix[0].length == 0){ + return; + } + + // step 1) i, j -> j, i + int l = matrix.length; + int w = matrix[0].length; + for (int i = 0; i < l; i++){ + // (1,0) <-> (0,1) + // (2,0) <-> (0,2) + + /** + * (0,1), (0,2), (0,3) + * (1,2), (1,3) + * (2,3 + * + * + */ + for (int j = i+1; j < w; j++){ + int tmp = matrix[i][j]; + matrix[i][j] = matrix[j][i]; + matrix[j][i] = tmp; + } + } + + // step 2) inverse + for (int i = 1; i < l; i++){ +// int[] cur = matrix[i]; +// //Arrays.stream(cur).toArray(). +// matrix[i] = reverse(matrix[i]); + reverse(matrix[i]); + } + } + + public int[] reverse(int[] input){ + int l = 0; + int r = input.length-1; + while (r > l){ + int tmp = input[r]; + input[r] = input[l]; + input[l] = tmp; + } + return input; + } }