Skip to content

Commit 4b6d5d4

Browse files
authored
feat: add solutions to lc problem: No.0035 (doocs#3194)
1 parent 412c774 commit 4b6d5d4

File tree

10 files changed

+238
-207
lines changed

10 files changed

+238
-207
lines changed

solution/0000-0099/0035.Search Insert Position/README.md

+84-72
Original file line numberDiff line numberDiff line change
@@ -74,31 +74,31 @@ tags:
7474
```python
7575
class Solution:
7676
def searchInsert(self, nums: List[int], target: int) -> int:
77-
left, right = 0, len(nums)
78-
while left < right:
79-
mid = (left + right) >> 1
77+
l, r = 0, len(nums)
78+
while l < r:
79+
mid = (l + r) >> 1
8080
if nums[mid] >= target:
81-
right = mid
81+
r = mid
8282
else:
83-
left = mid + 1
84-
return left
83+
l = mid + 1
84+
return l
8585
```
8686

8787
#### Java
8888

8989
```java
9090
class Solution {
9191
public int searchInsert(int[] nums, int target) {
92-
int left = 0, right = nums.length;
93-
while (left < right) {
94-
int mid = (left + right) >>> 1;
92+
int l = 0, r = nums.length;
93+
while (l < r) {
94+
int mid = (l + r) >>> 1;
9595
if (nums[mid] >= target) {
96-
right = mid;
96+
r = mid;
9797
} else {
98-
left = mid + 1;
98+
l = mid + 1;
9999
}
100100
}
101-
return left;
101+
return l;
102102
}
103103
}
104104
```
@@ -109,15 +109,16 @@ class Solution {
109109
class Solution {
110110
public:
111111
int searchInsert(vector<int>& nums, int target) {
112-
int left = 0, right = nums.size();
113-
while (left < right) {
114-
int mid = left + right >> 1;
115-
if (nums[mid] >= target)
116-
right = mid;
117-
else
118-
left = mid + 1;
112+
int l = 0, r = nums.size();
113+
while (l < r) {
114+
int mid = (l + r) >> 1;
115+
if (nums[mid] >= target) {
116+
r = mid;
117+
} else {
118+
l = mid + 1;
119+
}
119120
}
120-
return left;
121+
return l;
121122
}
122123
};
123124
```
@@ -126,42 +127,52 @@ public:
126127
127128
```go
128129
func searchInsert(nums []int, target int) int {
129-
left, right := 0, len(nums)
130-
for left < right {
131-
mid := (left + right) >> 1
130+
l, r := 0, len(nums)
131+
for l < r {
132+
mid := (l + r) >> 1
132133
if nums[mid] >= target {
133-
right = mid
134+
r = mid
134135
} else {
135-
left = mid + 1
136+
l = mid + 1
136137
}
137138
}
138-
return left
139+
return l
140+
}
141+
```
142+
143+
#### TypeScript
144+
145+
```ts
146+
function searchInsert(nums: number[], target: number): number {
147+
let [l, r] = [0, nums.length];
148+
while (l < r) {
149+
const mid = (l + r) >> 1;
150+
if (nums[mid] >= target) {
151+
r = mid;
152+
} else {
153+
l = mid + 1;
154+
}
155+
}
156+
return l;
139157
}
140158
```
141159

142160
#### Rust
143161

144162
```rust
145-
use std::cmp::Ordering;
146163
impl Solution {
147164
pub fn search_insert(nums: Vec<i32>, target: i32) -> i32 {
148-
let mut left = 0;
149-
let mut right = nums.len();
150-
while left < right {
151-
let mid = left + (right - left) / 2;
152-
match nums[mid].cmp(&target) {
153-
Ordering::Less => {
154-
left = mid + 1;
155-
}
156-
Ordering::Greater => {
157-
right = mid;
158-
}
159-
Ordering::Equal => {
160-
return mid as i32;
161-
}
165+
let mut l: usize = 0;
166+
let mut r: usize = nums.len();
167+
while l < r {
168+
let mid = (l + r) >> 1;
169+
if nums[mid] >= target {
170+
r = mid;
171+
} else {
172+
l = mid + 1;
162173
}
163174
}
164-
left as i32
175+
l as i32
165176
}
166177
}
167178
```
@@ -175,20 +186,44 @@ impl Solution {
175186
* @return {number}
176187
*/
177188
var searchInsert = function (nums, target) {
178-
let left = 0;
179-
let right = nums.length;
180-
while (left < right) {
181-
const mid = (left + right) >> 1;
189+
let [l, r] = [0, nums.length];
190+
while (l < r) {
191+
const mid = (l + r) >> 1;
182192
if (nums[mid] >= target) {
183-
right = mid;
193+
r = mid;
184194
} else {
185-
left = mid + 1;
195+
l = mid + 1;
186196
}
187197
}
188-
return left;
198+
return l;
189199
};
190200
```
191201

202+
#### PHP
203+
204+
```php
205+
class Solution {
206+
/**
207+
* @param Integer[] $nums
208+
* @param Integer $target
209+
* @return Integer
210+
*/
211+
function searchInsert($nums, $target) {
212+
$l = 0;
213+
$r = count($nums);
214+
while ($l < $r) {
215+
$mid = $l + $r >> 1;
216+
if ($nums[$mid] >= $target) {
217+
$r = $mid;
218+
} else {
219+
$l = $mid + 1;
220+
}
221+
}
222+
return $l;
223+
}
224+
}
225+
```
226+
192227
<!-- tabs:end -->
193228

194229
<!-- solution:end -->
@@ -241,29 +276,6 @@ func searchInsert(nums []int, target int) int {
241276
}
242277
```
243278

244-
#### PHP
245-
246-
```php
247-
class Solution {
248-
/**
249-
* @param integer[] $nums
250-
* @param integer $target
251-
* @return integer
252-
*/
253-
254-
function searchInsert($nums, $target) {
255-
$key = array_search($target, $nums);
256-
if ($key !== false) {
257-
return $key;
258-
}
259-
260-
$nums[] = $target;
261-
sort($nums);
262-
return array_search($target, $nums);
263-
}
264-
}
265-
```
266-
267279
<!-- tabs:end -->
268280

269281
<!-- solution:end -->

0 commit comments

Comments
 (0)