File tree Expand file tree Collapse file tree 1 file changed +10
-18
lines changed Expand file tree Collapse file tree 1 file changed +10
-18
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public int singleNonDuplicate (int [] nums ) {
3
- if (nums == null || nums .length == 0 ) {
4
- return 0 ;
5
- }
3
+ int low = 0 , high = nums .length - 1 ;
6
4
7
- int start = 0 , end = nums .length - 1 ;
5
+ while (low < high ) {
6
+ int mid = low + (high - low ) / 2 ;
8
7
9
- while (start < end ) {
10
- int mid = start + (end - start ) / 2 ;
8
+ if (mid % 2 == 1 ) {
9
+ mid --;
10
+ }
11
11
12
- if (mid % 2 == 0 ) {
13
- if (nums [mid ] == nums [mid + 1 ]) {
14
- start = mid + 1 ;
15
- } else {
16
- end = mid ;
17
- }
12
+ if (nums [mid ] != nums [mid + 1 ]) {
13
+ high = mid ;
18
14
} else {
19
- if (nums [mid ] == nums [mid - 1 ]) {
20
- start = mid + 1 ;
21
- } else {
22
- end = mid ;
23
- }
15
+ low = mid + 2 ;
24
16
}
25
17
}
26
18
27
- return nums [start ];
19
+ return nums [low ];
28
20
}
29
21
}
You can’t perform that action at this time.
0 commit comments