Leetcode題解 Python & C#:六月挑戰DAY10 Search Insert Position

給一個排序過的數列 nums 和目標值 target,要找出 目標值 insert() 到 nums 後的不影響排序的位置。 
nums是遞增(升序)排列,因此要找到一個位置 index ,該位置使 nums[index – 1] = target。
可以從最前方開始找,快一點的做法是使用二分搜尋。

Python

class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
l, r = 0, len(nums)
while l < r:
m = (r-l)//2+l
if nums[m] == target:
return m
elif nums[m] >= target:
r = m
else:
l = m+1
return r

C#

public class Solution {
public int SearchInsert(int[] nums, int target) {
int l = 0;
int r = nums.Length;
while(l < r)
{
int m = (r-l)/2 + l;
if(nums[m] == target)
return m;
else if(nums[m] > target)
r = m;
else
l = m + 1;
}
return r;
}
}