Skip to content

Commit 677c9ba

Browse files
committed
Time: 11 ms (97.08%) | Memory: 24.9 MB (26.94%) - LeetSync
1 parent 338cff9 commit 677c9ba

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public:
3+
int singleNonDuplicate(vector<int>& arr) {
4+
int n = arr.size();
5+
if (n == 1) return arr[0];
6+
if (arr[0] != arr[1]) return arr[0];
7+
if (arr[n - 1] != arr[n - 2]) return arr[n - 1];
8+
int low = 1, high = n - 2;
9+
while (low <= high) {
10+
int mid = low + (high - low) / 2;
11+
if (arr[mid] != arr[mid + 1] && arr[mid] != arr[mid - 1]) {
12+
return arr[mid];
13+
}
14+
if ((mid % 2 == 1 && arr[mid] == arr[mid - 1]) || (mid % 2 == 0 && arr[mid] == arr[mid + 1])) {
15+
low = mid + 1;
16+
}
17+
else {
18+
high = mid - 1;
19+
}
20+
}
21+
return -1;
22+
}
23+
};

0 commit comments

Comments
 (0)