From 17f77d5a3bffa8e839e452c1d631e71b83485a2c Mon Sep 17 00:00:00 2001 From: rain84 Date: Tue, 2 Jul 2024 22:42:57 +0300 Subject: [PATCH 01/11] feat: add ts solution to lc problem: No.0035 --- .../0035.Search Insert Position/README.md | 17 +++++++++++++++++ .../0035.Search Insert Position/README_EN.md | 17 +++++++++++++++++ .../0035.Search Insert Position/Solution.ts | 12 ++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 solution/0000-0099/0035.Search Insert Position/Solution.ts diff --git a/solution/0000-0099/0035.Search Insert Position/README.md b/solution/0000-0099/0035.Search Insert Position/README.md index 2c01ec64fc9bb..bb7d09dd305c5 100644 --- a/solution/0000-0099/0035.Search Insert Position/README.md +++ b/solution/0000-0099/0035.Search Insert Position/README.md @@ -189,6 +189,23 @@ var searchInsert = function (nums, target) { }; ``` +#### TypeScript + +```ts +function searchInsert(nums: number[], target: number): number { + let [l, r] = [0, nums.length - 1]; + + while (l <= r) { + const mid = (l + r)>> 1; + if (nums[mid] === target) return mid; + if (nums[mid] < target) l = mid + 1; + else r = mid - 1; + } + + return l; +} +``` + diff --git a/solution/0000-0099/0035.Search Insert Position/README_EN.md b/solution/0000-0099/0035.Search Insert Position/README_EN.md index 38b3f1035fb59..32c97739cb979 100644 --- a/solution/0000-0099/0035.Search Insert Position/README_EN.md +++ b/solution/0000-0099/0035.Search Insert Position/README_EN.md @@ -187,6 +187,23 @@ var searchInsert = function (nums, target) { }; ``` +#### TypeScript + +```ts +function searchInsert(nums: number[], target: number): number { + let [l, r] = [0, nums.length - 1]; + + while (l <= r) { + const mid = (l + r)>> 1; + if (nums[mid] === target) return mid; + if (nums[mid] < target) l = mid + 1; + else r = mid - 1; + } + + return l; +} +``` + diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.ts b/solution/0000-0099/0035.Search Insert Position/Solution.ts new file mode 100644 index 0000000000000..17dea64c2576b --- /dev/null +++ b/solution/0000-0099/0035.Search Insert Position/Solution.ts @@ -0,0 +1,12 @@ +function searchInsert(nums: number[], target: number): number { + let [l, r] = [0, nums.length - 1]; + + while (l <= r) { + const mid = (l + r)>> 1; + if (nums[mid] === target) return mid; + if (nums[mid] < target) l = mid + 1; + else r = mid - 1; + } + + return l; +} From 2aa9c4aba357464bbb78022c35a521a40714b087 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:37:53 +0800 Subject: [PATCH 02/11] Update README.md --- .../0035.Search Insert Position/README.md | 163 +++++++++--------- 1 file changed, 79 insertions(+), 84 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/README.md b/solution/0000-0099/0035.Search Insert Position/README.md index bb7d09dd305c5..a6fce1d36067d 100644 --- a/solution/0000-0099/0035.Search Insert Position/README.md +++ b/solution/0000-0099/0035.Search Insert Position/README.md @@ -74,14 +74,14 @@ tags: ```python class Solution: def searchInsert(self, nums: List[int], target: int) -> int: - left, right = 0, len(nums) - while left < right: - mid = (left + right)>> 1 + l, r = 0, len(nums) + while l < r: + mid = (l + r)>> 1 if nums[mid]>= target: - right = mid + r = mid else: - left = mid + 1 - return left + l = mid + 1 + return l ``` #### Java @@ -89,16 +89,16 @@ class Solution: ```java class Solution { public int searchInsert(int[] nums, int target) { - int left = 0, right = nums.length; - while (left < right) { - int mid = (left + right)>>> 1; + int l = 0, r = nums.length; + while (l < r) { + int mid = (l + r)>>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; } } ``` @@ -109,15 +109,16 @@ class Solution { class Solution { public: int searchInsert(vector& nums, int target) { - int left = 0, right = nums.size(); - while (left < right) { - int mid = left + right>> 1; - if (nums[mid]>= target) - right = mid; - else - left = mid + 1; + int l = 0, r = nums.size(); + while (l < r) { + int mid = (l + r)>> 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } } - return left; + return l; } }; ``` @@ -126,42 +127,52 @@ public: ```go func searchInsert(nums []int, target int) int { - left, right := 0, len(nums) - for left < right { - mid := (left + right)>> 1 + l, r := 0, len(nums) + for l < r { + mid := (l + r)>> 1 if nums[mid]>= target { - right = mid + r = mid } else { - left = mid + 1 + l = mid + 1 } } - return left + return l +} +``` + +#### TypeScript + +```ts +function searchInsert(nums: number[], target: number): number { + let [l, r] = [0, nums.length]; + while (l < r) { + const mid = (l + r)>> 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } + } + return l; } ``` #### Rust ```rust -use std::cmp::Ordering; impl Solution { pub fn search_insert(nums: Vec, target: i32) -> i32 { - let mut left = 0; - let mut right = nums.len(); - while left < right { - let mid = left + (right - left) / 2; - match nums[mid].cmp(&target) { - Ordering::Less => { - left = mid + 1; - } - Ordering::Greater => { - right = mid; - } - Ordering::Equal => { - return mid as i32; - } + let mut l: usize = 0; + let mut r: usize = nums.len(); + while l < r { + let mid = (l + r)>> 1; + if nums[mid]>= target { + r = mid; + } else { + l = mid + 1; } } - left as i32 + l as i32 } } ``` @@ -175,34 +186,41 @@ impl Solution { * @return {number} */ var searchInsert = function (nums, target) { - let left = 0; - let right = nums.length; - while (left < right) { - const mid = (left + right)>> 1; + let [l, r] = [0, nums.length]; + while (l < r) { + const mid = (l + r)>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; }; ``` -#### TypeScript - -```ts -function searchInsert(nums: number[], target: number): number { - let [l, r] = [0, nums.length - 1]; +#### PHP - while (l <= r) { - const mid = (l + r)>> 1; - if (nums[mid] === target) return mid; - if (nums[mid] < target) l = mid + 1; - else r = mid - 1; +```php +class Solution { + /** + * @param Integer[] $nums + * @param Integer $target + * @return Integer + */ + function searchInsert($nums, $target) { + $l = 0; + $r = count($nums); + while ($l < $r) { + $mid = $l + $r>> 1; + if ($nums[$mid]>= $target) { + $r = $mid; + } else { + $l = $mid + 1; + } + } + return $l; } - - return l; } ``` @@ -258,29 +276,6 @@ func searchInsert(nums []int, target int) int { } ``` -#### PHP - -```php -class Solution { - /** - * @param integer[] $nums - * @param integer $target - * @return integer - */ - - function searchInsert($nums, $target) { - $key = array_search($target, $nums); - if ($key !== false) { - return $key; - } - - $nums[] = $target; - sort($nums); - return array_search($target, $nums); - } -} -``` - From e3510c942ac801a6aa4babcffef13ab51c75c538 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:38:02 +0800 Subject: [PATCH 03/11] Update README_EN.md --- .../0035.Search Insert Position/README_EN.md | 163 +++++++++--------- 1 file changed, 79 insertions(+), 84 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/README_EN.md b/solution/0000-0099/0035.Search Insert Position/README_EN.md index 32c97739cb979..993bda6f5455f 100644 --- a/solution/0000-0099/0035.Search Insert Position/README_EN.md +++ b/solution/0000-0099/0035.Search Insert Position/README_EN.md @@ -72,14 +72,14 @@ The time complexity is $O(\log n),ドル and the space complexity is $O(1)$. Here, $n ```python class Solution: def searchInsert(self, nums: List[int], target: int) -> int: - left, right = 0, len(nums) - while left < right: - mid = (left + right)>> 1 + l, r = 0, len(nums) + while l < r: + mid = (l + r)>> 1 if nums[mid]>= target: - right = mid + r = mid else: - left = mid + 1 - return left + l = mid + 1 + return l ``` #### Java @@ -87,16 +87,16 @@ class Solution: ```java class Solution { public int searchInsert(int[] nums, int target) { - int left = 0, right = nums.length; - while (left < right) { - int mid = (left + right)>>> 1; + int l = 0, r = nums.length; + while (l < r) { + int mid = (l + r)>>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; } } ``` @@ -107,15 +107,16 @@ class Solution { class Solution { public: int searchInsert(vector& nums, int target) { - int left = 0, right = nums.size(); - while (left < right) { - int mid = left + right>> 1; - if (nums[mid]>= target) - right = mid; - else - left = mid + 1; + int l = 0, r = nums.size(); + while (l < r) { + int mid = (l + r)>> 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } } - return left; + return l; } }; ``` @@ -124,42 +125,52 @@ public: ```go func searchInsert(nums []int, target int) int { - left, right := 0, len(nums) - for left < right { - mid := (left + right)>> 1 + l, r := 0, len(nums) + for l < r { + mid := (l + r)>> 1 if nums[mid]>= target { - right = mid + r = mid } else { - left = mid + 1 + l = mid + 1 } } - return left + return l +} +``` + +#### TypeScript + +```ts +function searchInsert(nums: number[], target: number): number { + let [l, r] = [0, nums.length]; + while (l < r) { + const mid = (l + r)>> 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } + } + return l; } ``` #### Rust ```rust -use std::cmp::Ordering; impl Solution { pub fn search_insert(nums: Vec, target: i32) -> i32 { - let mut left = 0; - let mut right = nums.len(); - while left < right { - let mid = left + (right - left) / 2; - match nums[mid].cmp(&target) { - Ordering::Less => { - left = mid + 1; - } - Ordering::Greater => { - right = mid; - } - Ordering::Equal => { - return mid as i32; - } + let mut l: usize = 0; + let mut r: usize = nums.len(); + while l < r { + let mid = (l + r)>> 1; + if nums[mid]>= target { + r = mid; + } else { + l = mid + 1; } } - left as i32 + l as i32 } } ``` @@ -173,34 +184,41 @@ impl Solution { * @return {number} */ var searchInsert = function (nums, target) { - let left = 0; - let right = nums.length; - while (left < right) { - const mid = (left + right)>> 1; + let [l, r] = [0, nums.length]; + while (l < r) { + const mid = (l + r)>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; }; ``` -#### TypeScript - -```ts -function searchInsert(nums: number[], target: number): number { - let [l, r] = [0, nums.length - 1]; +#### PHP - while (l <= r) { - const mid = (l + r)>> 1; - if (nums[mid] === target) return mid; - if (nums[mid] < target) l = mid + 1; - else r = mid - 1; +```php +class Solution { + /** + * @param Integer[] $nums + * @param Integer $target + * @return Integer + */ + function searchInsert($nums, $target) { + $l = 0; + $r = count($nums); + while ($l < $r) { + $mid = $l + $r>> 1; + if ($nums[$mid]>= $target) { + $r = $mid; + } else { + $l = $mid + 1; + } + } + return $l; } - - return l; } ``` @@ -256,29 +274,6 @@ func searchInsert(nums []int, target int) int { } ``` -#### PHP - -```php -class Solution { - /** - * @param integer[] $nums - * @param integer $target - * @return integer - */ - - function searchInsert($nums, $target) { - $key = array_search($target, $nums); - if ($key !== false) { - return $key; - } - - $nums[] = $target; - sort($nums); - return array_search($target, $nums); - } -} -``` - From a9ba6b6739e14e56b4795e35a16f7269056bdc0a Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:38:27 +0800 Subject: [PATCH 04/11] Update Solution.ts --- .../0035.Search Insert Position/Solution.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.ts b/solution/0000-0099/0035.Search Insert Position/Solution.ts index 17dea64c2576b..022ae42b9a92d 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.ts +++ b/solution/0000-0099/0035.Search Insert Position/Solution.ts @@ -1,12 +1,12 @@ function searchInsert(nums: number[], target: number): number { - let [l, r] = [0, nums.length - 1]; - - while (l <= r) { + let [l, r] = [0, nums.length]; + while (l < r) { const mid = (l + r)>> 1; - if (nums[mid] === target) return mid; - if (nums[mid] < target) l = mid + 1; - else r = mid - 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } } - return l; } From 8063653f397e721358a9100cb57e39f711032166 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:40:56 +0800 Subject: [PATCH 05/11] Update Solution.py --- .../0035.Search Insert Position/Solution.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.py b/solution/0000-0099/0035.Search Insert Position/Solution.py index 569182979d9b9..b84ca1d4f7aba 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.py +++ b/solution/0000-0099/0035.Search Insert Position/Solution.py @@ -1,10 +1,10 @@ class Solution: def searchInsert(self, nums: List[int], target: int) -> int: - left, right = 0, len(nums) - while left < right: - mid = (left + right)>> 1 + l, r = 0, len(nums) + while l < r: + mid = (l + r)>> 1 if nums[mid]>= target: - right = mid + r = mid else: - left = mid + 1 - return left + l = mid + 1 + return l From 2587290a3de30c1d03a05d717d33ab7549b08070 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:41:05 +0800 Subject: [PATCH 06/11] Update Solution.java --- .../0035.Search Insert Position/Solution.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.java b/solution/0000-0099/0035.Search Insert Position/Solution.java index f35db826ece85..b4436ac6b178d 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.java +++ b/solution/0000-0099/0035.Search Insert Position/Solution.java @@ -1,14 +1,14 @@ class Solution { public int searchInsert(int[] nums, int target) { - int left = 0, right = nums.length; - while (left < right) { - int mid = (left + right)>>> 1; + int l = 0, r = nums.length; + while (l < r) { + int mid = (l + r)>>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; } -} \ No newline at end of file +} From 6badead8a10d03a5f37c1cf8021b24c0141d2f2f Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:41:14 +0800 Subject: [PATCH 07/11] Update Solution.cpp --- .../0035.Search Insert Position/Solution.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.cpp b/solution/0000-0099/0035.Search Insert Position/Solution.cpp index 6849c3ca0a42f..45dba64da6dc8 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.cpp +++ b/solution/0000-0099/0035.Search Insert Position/Solution.cpp @@ -1,14 +1,15 @@ class Solution { public: int searchInsert(vector& nums, int target) { - int left = 0, right = nums.size(); - while (left < right) { - int mid = left + right>> 1; - if (nums[mid]>= target) - right = mid; - else - left = mid + 1; + int l = 0, r = nums.size(); + while (l < r) { + int mid = (l + r)>> 1; + if (nums[mid]>= target) { + r = mid; + } else { + l = mid + 1; + } } - return left; + return l; } -}; \ No newline at end of file +}; From 8dad9dee24a207e92dbbf70681c530f83a9be68a Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:41:22 +0800 Subject: [PATCH 08/11] Update Solution.go --- .../0035.Search Insert Position/Solution.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.go b/solution/0000-0099/0035.Search Insert Position/Solution.go index eaaebc8ecc34b..4ec0b84f158e2 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.go +++ b/solution/0000-0099/0035.Search Insert Position/Solution.go @@ -1,12 +1,12 @@ func searchInsert(nums []int, target int) int { - left, right := 0, len(nums) - for left < right { - mid := (left + right)>> 1 + l, r := 0, len(nums) + for l < r { + mid := (l + r)>> 1 if nums[mid]>= target { - right = mid + r = mid } else { - left = mid + 1 + l = mid + 1 } } - return left -} \ No newline at end of file + return l +} From 94ddcbda45d96c18eb5ae8f71fc6e5cebdd84529 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:41:34 +0800 Subject: [PATCH 09/11] Update Solution.js --- .../0035.Search Insert Position/Solution.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.js b/solution/0000-0099/0035.Search Insert Position/Solution.js index 78a34abe3de59..0504d694058b3 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.js +++ b/solution/0000-0099/0035.Search Insert Position/Solution.js @@ -4,15 +4,14 @@ * @return {number} */ var searchInsert = function (nums, target) { - let left = 0; - let right = nums.length; - while (left < right) { - const mid = (left + right)>> 1; + let [l, r] = [0, nums.length]; + while (l < r) { + const mid = (l + r)>> 1; if (nums[mid]>= target) { - right = mid; + r = mid; } else { - left = mid + 1; + l = mid + 1; } } - return left; + return l; }; From 3fa6885162e06a6cd2ee142e1be68dc46f6a6c9e Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:41:47 +0800 Subject: [PATCH 10/11] Update Solution.rs --- .../0035.Search Insert Position/Solution.rs | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.rs b/solution/0000-0099/0035.Search Insert Position/Solution.rs index e5323e4d6f2ac..6d301e46fb3d3 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.rs +++ b/solution/0000-0099/0035.Search Insert Position/Solution.rs @@ -1,22 +1,15 @@ -use std::cmp::Ordering; impl Solution { pub fn search_insert(nums: Vec, target: i32) -> i32 { - let mut left = 0; - let mut right = nums.len(); - while left < right { - let mid = left + (right - left) / 2; - match nums[mid].cmp(&target) { - Ordering::Less => { - left = mid + 1; - } - Ordering::Greater => { - right = mid; - } - Ordering::Equal => { - return mid as i32; - } + let mut l: usize = 0; + let mut r: usize = nums.len(); + while l < r { + let mid = (l + r)>> 1; + if nums[mid]>= target { + r = mid; + } else { + l = mid + 1; } } - left as i32 + l as i32 } } From fff13ff98daa49b51b18ec9a7ab8e3cc87b120da Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 08:42:06 +0800 Subject: [PATCH 11/11] Update Solution.php --- .../0035.Search Insert Position/Solution.php | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/solution/0000-0099/0035.Search Insert Position/Solution.php b/solution/0000-0099/0035.Search Insert Position/Solution.php index 6290cc266dc52..53bee9615eaba 100644 --- a/solution/0000-0099/0035.Search Insert Position/Solution.php +++ b/solution/0000-0099/0035.Search Insert Position/Solution.php @@ -1,18 +1,20 @@ class Solution { /** - * @param integer[] $nums - * @param integer $target - * @return integer + * @param Integer[] $nums + * @param Integer $target + * @return Integer */ - function searchInsert($nums, $target) { - $key = array_search($target, $nums); - if ($key !== false) { - return $key; + $l = 0; + $r = count($nums); + while ($l < $r) { + $mid = $l + $r>> 1; + if ($nums[$mid]>= $target) { + $r = $mid; + } else { + $l = $mid + 1; + } } - - $nums[] = $target; - sort($nums); - return array_search($target, $nums); + return $l; } }

AltStyle によって変換されたページ (->オリジナル) /