Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bbc66fc

Browse files
Merge pull request youngyangyang04#2285 from JunqiaoDuan/master
Update 0035.搜索插入位置.md
2 parents 39a2b2e + 949dd97 commit bbc66fc

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed

‎problems/0034.在排序数组中查找元素的第一个和最后一个位置.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,67 @@ class Solution {
329329
}
330330
```
331331

332+
### C#
333+
334+
```c#
335+
public int[] SearchRange(int[] nums, int target) {
336+
337+
var leftBorder = GetLeftBorder(nums, target);
338+
var rightBorder = GetRightBorder(nums, target);
339+
340+
if (leftBorder == -2 || rightBorder == -2) {
341+
return new int[] {-1, -1};
342+
}
343+
344+
if (rightBorder - leftBorder >=2) {
345+
return new int[] {leftBorder + 1, rightBorder - 1};
346+
}
347+
348+
return new int[] {-1, -1};
349+
350+
}
351+
352+
public int GetLeftBorder(int[] nums, int target){
353+
var left = 0;
354+
var right = nums.Length - 1;
355+
var leftBorder = -2;
356+
357+
while (left <= right) {
358+
var mid = (left + right) / 2;
359+
360+
if (target <= nums[mid]) {
361+
right = mid - 1;
362+
leftBorder = right;
363+
}
364+
else {
365+
left = mid + 1;
366+
}
367+
}
368+
369+
return leftBorder;
370+
}
371+
372+
public int GetRightBorder(int[] nums, int target){
373+
var left = 0;
374+
var right = nums.Length - 1;
375+
var rightBorder = -2;
376+
377+
while (left <= right) {
378+
var mid = (left + right) / 2;
379+
380+
if (target >= nums[mid]) {
381+
left = mid + 1;
382+
rightBorder = left;
383+
}
384+
else {
385+
right = mid - 1;
386+
}
387+
}
388+
389+
return rightBorder;
390+
}
391+
```
392+
332393

333394

334395
### Python

‎problems/0035.搜索插入位置.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,37 @@ public int searchInsert(int[] nums, int target) {
258258

259259

260260

261+
### C#
262+
263+
```go
264+
public int SearchInsert(int[] nums, int target) {
265+
266+
var left = 0;
267+
var right = nums.Length - 1;
268+
269+
while (left <= right) {
270+
271+
var curr = (left + right) / 2;
272+
273+
if (nums[curr] == target)
274+
{
275+
return curr;
276+
}
277+
278+
if (target > nums[curr]) {
279+
left = curr + 1;
280+
}
281+
else {
282+
right = curr - 1;
283+
}
284+
}
285+
286+
return left;
287+
}
288+
```
289+
290+
291+
261292
### Golang
262293

263294
```go
@@ -500,3 +531,4 @@ int searchInsert(int* nums, int numsSize, int target){
500531
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
501532
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
502533
</a>
534+

0 commit comments

Comments
(0)

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