From 647d3f30906203c40f8ff063b9abd38818ab690c Mon Sep 17 00:00:00 2001 From: zhaocchen Date: Mon, 21 Jun 2021 12:01:54 +0800 Subject: [PATCH] feat: add typescript solution to lc problem: No.0540.Single Element in a Sorted Array --- .../README.md | 20 +++++++++++++++++++ .../README_EN.md | 18 +++++++++++++++++ .../Solution.ts | 13 ++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 solution/0500-0599/0540.Single Element in a Sorted Array/Solution.ts diff --git a/solution/0500-0599/0540.Single Element in a Sorted Array/README.md b/solution/0500-0599/0540.Single Element in a Sorted Array/README.md index 6766cf7a5dafa..9d08c267e69b3 100644 --- a/solution/0500-0599/0540.Single Element in a Sorted Array/README.md +++ b/solution/0500-0599/0540.Single Element in a Sorted Array/README.md @@ -29,6 +29,8 @@ +二分法 + ### **Python3** @@ -74,6 +76,24 @@ class Solution { } ``` +### **TypeScript** + +```ts +function singleNonDuplicate(nums: number[]): number { + let left = 0, right = nums.length - 1; + while (left < right) { + let mid = (left + right) >> 1; + if ((mid & 1) == 1) --mid; + if (nums[mid] == nums[mid + 1]) { + left = mid + 2; + } else { + right = mid; + } + } + return nums[left]; +}; +``` + ### **Go** ```go diff --git a/solution/0500-0599/0540.Single Element in a Sorted Array/README_EN.md b/solution/0500-0599/0540.Single Element in a Sorted Array/README_EN.md index b4645a0b34ff2..fc043ecb15316 100644 --- a/solution/0500-0599/0540.Single Element in a Sorted Array/README_EN.md +++ b/solution/0500-0599/0540.Single Element in a Sorted Array/README_EN.md @@ -82,6 +82,24 @@ class Solution { } ``` +### **TypeScript** + +```ts +function singleNonDuplicate(nums: number[]): number { + let left = 0, right = nums.length - 1; + while (left < right) { + let mid = (left + right) >> 1; + if ((mid & 1) == 1) --mid; + if (nums[mid] == nums[mid + 1]) { + left = mid + 2; + } else { + right = mid; + } + } + return nums[left]; +}; +``` + ### **Go** ```go diff --git a/solution/0500-0599/0540.Single Element in a Sorted Array/Solution.ts b/solution/0500-0599/0540.Single Element in a Sorted Array/Solution.ts new file mode 100644 index 0000000000000..12cab79606f9f --- /dev/null +++ b/solution/0500-0599/0540.Single Element in a Sorted Array/Solution.ts @@ -0,0 +1,13 @@ +function singleNonDuplicate(nums: number[]): number { + let left = 0, right = nums.length - 1; + while (left < right) { + let mid = (left + right) >> 1; + if ((mid & 1) == 1) --mid; + if (nums[mid] == nums[mid + 1]) { + left = mid + 2; + } else { + right = mid; + } + } + return nums[left]; +}; \ No newline at end of file