Skip to content

Commit 4a74aac

Browse files
Update 0287-find-the-duplicate-number.java
Used a do while loop to make the code more concise.
1 parent efb05a9 commit 4a74aac

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

java/0287-find-the-duplicate-number.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,26 @@
33
// Space Complexity: O(1)
44

55
class Solution {
6-
76
public int findDuplicate(int[] nums) {
8-
int fast = nums[0];
9-
int slow = nums[0];
10-
boolean first = true;
11-
while (first || fast != slow) {
12-
if (first) first = false;
7+
int slow = 0;
8+
int fast = 0;
9+
10+
do {
1311
slow = nums[slow];
1412
fast = nums[nums[fast]];
15-
if (fast == slow) break;
1613
}
17-
int slow2 = nums[0];
18-
while (slow2 != slow) {
19-
if (first) first = false;
20-
slow2 = nums[slow2];
14+
15+
while (slow != fast);
16+
17+
int slow2 = 0;
18+
19+
do {
2120
slow = nums[slow];
22-
if (slow2 == slow) return slow;
21+
slow2 = nums[slow2];
2322
}
24-
return slow;
23+
24+
while (slow != slow2);
25+
26+
return slow2;
2527
}
2628
}

0 commit comments

Comments
 (0)