Skip to content

Commit 8439788

Browse files
authored
Merge pull request #2696 from AHTHneeuhl/0540
2 parents 7224082 + 742f2b8 commit 8439788

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Time complexity: O(log n)
2+
// Space complexity: O(1)
3+
4+
class Solution
5+
{
6+
public:
7+
int singleNonDuplicate(vector<int> &nums)
8+
{
9+
int left = 0, right = nums.size() - 2;
10+
11+
while (left <= right)
12+
{
13+
int mid1 = (left + right) >> 1;
14+
int mid2 = mid1 ^ 1;
15+
if (nums[mid1] == nums[mid2])
16+
{
17+
left = mid1 + 1;
18+
}
19+
else
20+
{
21+
right = mid1 - 1;
22+
}
23+
}
24+
25+
return nums[left];
26+
}
27+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Time Complexity: O(log n)
2+
// Space Complexity: O(1)
3+
4+
/**
5+
* @param {number[]} nums
6+
* @return {number}
7+
*/
8+
var singleNonDuplicate = function (nums) {
9+
let left = 0,
10+
right = nums.length - 2;
11+
12+
while (left <= right) {
13+
const mid1 = (left + right) >> 1;
14+
const mid2 = mid1 ^ 1;
15+
16+
if (nums[mid1] === nums[mid2]) left = mid1 + 1;
17+
else right = mid1 - 1;
18+
}
19+
20+
return nums[left];
21+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Time Complexity: O(log n)
2+
// Space Complexity: O(1)
3+
4+
function singleNonDuplicate(nums: number[]): number {
5+
let left = 0,
6+
right = nums.length - 2;
7+
8+
while (left <= right) {
9+
const mid1 = (left + right) >> 1;
10+
const mid2 = mid1 ^ 1;
11+
12+
if (nums[mid1] === nums[mid2]) left = mid1 + 1;
13+
else right = mid1 - 1;
14+
}
15+
16+
return nums[left];
17+
}

0 commit comments

Comments
 (0)