From 742f2b89ae1454365d7d3acda160f256b1033483 Mon Sep 17 00:00:00 2001 From: Shubham Patrick Date: Fri, 14 Jul 2023 02:34:55 +0530 Subject: [PATCH] Refactor: 0540 - Single Element in a Sorted Array (ts,js,cpp) --- cpp/0540-single-element-in-a-sorted-array.cpp | 9 +++++---- javascript/0540-single-element-in-a-sorted-array.js | 7 ++++--- typescript/0540-single-element-in-a-sorted-array.ts | 7 ++++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/cpp/0540-single-element-in-a-sorted-array.cpp b/cpp/0540-single-element-in-a-sorted-array.cpp index 6feb90376..ed141bc25 100644 --- a/cpp/0540-single-element-in-a-sorted-array.cpp +++ b/cpp/0540-single-element-in-a-sorted-array.cpp @@ -10,14 +10,15 @@ class Solution while (left <= right) { - int mid = (left + right) >> 1; - if (nums[mid] == nums[mid ^ 1]) + int mid1 = (left + right) >> 1; + int mid2 = mid1 ^ 1; + if (nums[mid1] == nums[mid2]) { - left = mid + 1; + left = mid1 + 1; } else { - right = mid - 1; + right = mid1 - 1; } } diff --git a/javascript/0540-single-element-in-a-sorted-array.js b/javascript/0540-single-element-in-a-sorted-array.js index dcb36785d..b4b0793a1 100644 --- a/javascript/0540-single-element-in-a-sorted-array.js +++ b/javascript/0540-single-element-in-a-sorted-array.js @@ -10,10 +10,11 @@ var singleNonDuplicate = function (nums) { right = nums.length - 2; while (left <= right) { - const mid = (left + right) >> 1; + const mid1 = (left + right) >> 1; + const mid2 = mid1 ^ 1; - if (nums[mid] === nums[mid ^ 1]) left = mid + 1; - else right = mid - 1; + if (nums[mid1] === nums[mid2]) left = mid1 + 1; + else right = mid1 - 1; } return nums[left]; diff --git a/typescript/0540-single-element-in-a-sorted-array.ts b/typescript/0540-single-element-in-a-sorted-array.ts index 049152624..f67876cbc 100644 --- a/typescript/0540-single-element-in-a-sorted-array.ts +++ b/typescript/0540-single-element-in-a-sorted-array.ts @@ -6,10 +6,11 @@ function singleNonDuplicate(nums: number[]): number { right = nums.length - 2; while (left <= right) { - const mid = (left + right) >> 1; + const mid1 = (left + right) >> 1; + const mid2 = mid1 ^ 1; - if (nums[mid] === nums[mid ^ 1]) left = mid + 1; - else right = mid - 1; + if (nums[mid1] === nums[mid2]) left = mid1 + 1; + else right = mid1 - 1; } return nums[left];