Find the Duplicate Number LeetCode solution in Java

1
class Solution {
2
public int findDuplicate(int[] nums) {
3
int i = 0;
4
while (i < nums.length) {
5

6
if (nums[i] != i + 1) {
7
int correct = nums[i] - 1;
8
if (nums[i] != nums[correct]) {
9
swap(nums, i, correct);
10
} else {
11
return nums[i];
12
}
13
} else {
14
i++;
15
}
16
}
17
return -1;
18
}
19

20
static void swap(int[] arr, int first, int second) {
21
int temp = arr[first];
22
arr[first] = arr[second];
23
arr[second] = temp;
24
}
25
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0