diff --git a/solution/0000-0099/0035.Search Insert Position/README.md b/solution/0000-0099/0035.Search Insert Position/README.md index 2c01ec64fc9bb..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,20 +186,44 @@ 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; }; ``` +#### PHP + +```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; + } +} +``` + @@ -241,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); - } -} -``` - 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..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,20 +184,44 @@ 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; }; ``` +#### PHP + +```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; + } +} +``` + @@ -239,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); - } -} -``` - 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 +}; 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 +} 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 +} 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; }; 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; } } 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 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 } } 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..022ae42b9a92d --- /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]; + while (l < r) { + const mid = (l + r) >> 1; + if (nums[mid] >= target) { + r = mid; + } else { + l = mid + 1; + } + } + return l; +}