Skip to content

Commit 7b7b5ab

Browse files
committed
update 26 java
1 parent 622cded commit 7b7b5ab

File tree

4 files changed

+165
-33
lines changed

4 files changed

+165
-33
lines changed

data/progress.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
20241103: 26
12
20241102: 802,1197,26
23
20241027: 855,846
34
20241026: 932

data/to_review.txt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
2024-12-28 -> ['26']
12
2024-12-27 -> ['802,1197,26']
23
2024-12-21 -> ['855,846']
34
2024-12-20 -> ['932']
@@ -6,7 +7,7 @@
67
2024-12-13 -> ['298,729']
78
2024-12-12 -> ['1146']
89
2024-12-08 -> ['737']
9-
2024-12-07 -> ['686,734,737']
10+
2024-12-07 -> ['26', '686,734,737']
1011
2024-12-06 -> ['802,1197,26', '353']
1112
2024-12-05 -> ['528,334']
1213
2024-12-03 -> ['1145']
@@ -15,24 +16,25 @@
1516
2024-11-27 -> ['951,792', '524,221,889']
1617
2024-11-26 -> ['743,889']
1718
2024-11-25 -> ['837']
19+
2024-11-24 -> ['26']
1820
2024-11-23 -> ['802,1197,26', '163,1048', '981']
1921
2024-11-22 -> ['298,729', '1087']
2022
2024-11-21 -> ['1146']
2123
2024-11-20 -> ['939']
2224
2024-11-18 -> ['430']
2325
2024-11-17 -> ['855,846', '737', '363']
24-
2024-11-16 -> ['932', '686,734,737', '1032,844,1011']
26+
2024-11-16 -> ['26', '932', '686,734,737', '1032,844,1011']
2527
2024-11-15 -> ['802,1197,26', '353', '947']
2628
2024-11-14 -> ['951,792', '528,334']
2729
2024-11-12 -> ['1145', '753']
28-
2024-11-11 -> ['727']
30+
2024-11-11 -> ['26', '727']
2931
2024-11-10 -> ['802,1197,26', '163,1048']
3032
2024-11-09 -> ['855,846', '298,729', '1145,1219']
31-
2024-11-08 -> ['932', '1146']
33+
2024-11-08 -> ['26', '932', '1146']
3234
2024-11-07 -> ['802,1197,26']
33-
2024-11-06 -> ['951,792', '524,221,889']
34-
2024-11-05 -> ['802,1197,26', '743,889']
35-
2024-11-04 -> ['802,1197,26', '855,846', '737', '837', '659']
35+
2024-11-06 -> ['26', '951,792', '524,221,889']
36+
2024-11-05 -> ['26', '802,1197,26', '743,889']
37+
2024-11-04 -> ['26', '802,1197,26', '855,846', '737', '837', '659']
3638
2024-11-03 -> ['802,1197,26', '932', '686,734,737', '801,552']
3739
2024-11-02 -> ['163,1048', '353', '981', '1057,1066,1110']
3840
2024-11-01 -> ['855,846', '951,792', '298,729', '528,334', '1087']

leetcode_java/src/main/java/LeetCodeJava/Array/RemoveDuplicatesFromSortedArray.java

Lines changed: 76 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,85 @@ public class RemoveDuplicatesFromSortedArray {
5959

6060
// V0
6161
// IDEA : 2 POINTERS
62+
/**
63+
* //--------------------------------
64+
* Example 1
65+
* //--------------------------------
66+
*
67+
* nums = [1,1,2]
68+
*
69+
* [1,1,2]
70+
* s f
71+
*
72+
* [1,2, 1] if nums[f] != nums[s], move s, then swap f, s
73+
* s s f
74+
*
75+
*
76+
* //--------------------------------
77+
* Example 2
78+
* //--------------------------------
79+
*
80+
* nums = [0,0,1,1,1,2,2,3,3,4]
81+
*
82+
* [0,0,1,1,1,2,2,3,3,4]
83+
* s f
84+
*
85+
* [0,1,0,1,1,2,2,3,3,4] if nums[f] != nums[s], move s, then swap f, s
86+
* s s f
87+
*
88+
* [0,1,0,1,1,2,2,3,3,4]
89+
* s f
90+
*
91+
* [0,1,0,1,1,2,2,3,3,4]
92+
* s f
93+
*
94+
* [0,1,2,1,1,0,2,3,3,4] if nums[f] != nums[s], move s, then swap f, s
95+
* s s f
96+
*
97+
* [0,1,2,1,1,0,2,3,3,4]
98+
* s f
99+
*
100+
* [0,1,2,3,1,0,2,1,3,4] if nums[f] != nums[s], move s, then swap f, s
101+
* s s f
102+
*
103+
* [0,1,2,3,1,0,2,1,3,4]
104+
* s f
105+
*
106+
* [0,1,2,3,4,0,2,1,3,1] if nums[f] != nums[s], move s, then swap f, s
107+
* s s f
108+
*
109+
*/
62110
public int removeDuplicates(int[] nums) {
63-
int i = 0;
64-
for (int j = 1; j < nums.length; j++) {
65-
if (nums[i] != nums[j]) {
66-
i++;
67-
nums[i] = nums[j];
111+
/**
112+
* NOTE !!! we init slow, fast pointers as s, f
113+
* and use for loop go through over fast pointer (f)
114+
*/
115+
int s = 0;
116+
for (int f = 1; f < nums.length; f++){
117+
/**
118+
* NOTE !!!
119+
*
120+
* we do swap when f NOT EQUALS s
121+
*/
122+
if (nums[f] != nums[s]){
123+
/**
124+
* NOTE !!!
125+
*
126+
* we move slow pointer first,
127+
* then do swap
128+
*/
129+
s += 1;
130+
int tmp = nums[f];
131+
nums[f] = nums[s];
132+
nums[s] = tmp;
68133
}
69134
}
70-
return i + 1;
135+
/**
136+
* NOTE !!!
137+
*
138+
* we return s+1 as non-duplicated array length, since length = index + 1
139+
*/
140+
return s+1;
71141
}
72142

73143
// V1

leetcode_java/src/main/java/dev/workspace5.java

Lines changed: 79 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,8 +2250,67 @@ public int minKnightMoves(int x, int y) {
22502250

22512251
// LC 26
22522252
// https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/
2253-
// 7.05 - 7.15 PM
2253+
// 8.31 am - 8.40 am
2254+
/**
2255+
* exp 1
2256+
*
2257+
* nums = [1,1,2]
2258+
*
2259+
* [1,1,2]
2260+
* s f
2261+
*
2262+
* [1,2, 1] if nums[f] != nums[s], move s, then swap f, s
2263+
* s s f
2264+
*
2265+
*
2266+
* exp 2
2267+
*
2268+
* nums = [0,0,1,1,1,2,2,3,3,4]
2269+
*
2270+
* [0,0,1,1,1,2,2,3,3,4]
2271+
* s f
2272+
*
2273+
* [0,1,0,1,1,2,2,3,3,4] if nums[f] != nums[s], move s, then swap f, s
2274+
* s s f
2275+
*
2276+
* [0,1,0,1,1,2,2,3,3,4]
2277+
* s f
2278+
*
2279+
* [0,1,0,1,1,2,2,3,3,4]
2280+
* s f
2281+
*
2282+
* [0,1,2,1,1,0,2,3,3,4] if nums[f] != nums[s], move s, then swap f, s
2283+
* s s f
2284+
*
2285+
* [0,1,2,1,1,0,2,3,3,4]
2286+
* s f
2287+
*
2288+
* [0,1,2,3,1,0,2,1,3,4] if nums[f] != nums[s], move s, then swap f, s
2289+
* s s f
2290+
*
2291+
* [0,1,2,3,1,0,2,1,3,4]
2292+
* s f
2293+
*
2294+
* [0,1,2,3,4,0,2,1,3,1] if nums[f] != nums[s], move s, then swap f, s
2295+
* s s f
2296+
*
2297+
*/
22542298
// 2 pointers
2299+
public int removeDuplicates(int[] nums) {
2300+
//
2301+
int s = 0;
2302+
for (int f = 1; f < nums.length; f++){
2303+
if (nums[f] != nums[s]){
2304+
//
2305+
s += 1;
2306+
int tmp = nums[f];
2307+
nums[f] = nums[s];
2308+
nums[s] = tmp;
2309+
}
2310+
}
2311+
//
2312+
return s+1;
2313+
}
22552314
/**
22562315
* - exp 1
22572316
*
@@ -2309,25 +2368,25 @@ public int minKnightMoves(int x, int y) {
23092368
*
23102369
*
23112370
*/
2312-
public int removeDuplicates(int[] nums) {
2313-
if (nums.length==0){
2314-
return 0;
2315-
}
2316-
int s = 0;
2317-
int f = 1;
2318-
2319-
while (f < nums.length){
2320-
if (nums[s] == nums[f]){
2321-
2322-
s += 1;
2323-
int tmp = nums[f];
2324-
nums[f] = nums[s];
2325-
nums[s] = tmp;
2326-
}
2327-
f += 1;
2328-
}
2329-
return s;
2330-
}
2371+
// public int removeDuplicates(int[] nums) {
2372+
// if (nums.length==0){
2373+
// return 0;
2374+
// }
2375+
// int s = 0;
2376+
// int f = 1;
2377+
//
2378+
// while (f < nums.length){
2379+
// if (nums[s] == nums[f]){
2380+
//
2381+
// s += 1;
2382+
// int tmp = nums[f];
2383+
// nums[f] = nums[s];
2384+
// nums[s] = tmp;
2385+
// }
2386+
// f += 1;
2387+
// }
2388+
// return s;
2389+
// }
23312390

23322391
}
23332392

0 commit comments

Comments
 (0)