搜尋插入位置(leetcode簡單篇第三十五題)
阿新 • • 發佈:2018-11-23
給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 1:
輸入: [1,3,5,6], 5
輸出: 2
示例 2:
輸入: [1,3,5,6], 2
輸出: 1
示例 3:
輸入: [1,3,5,6], 7
輸出: 4
示例 4:
輸入: [1,3,5,6], 0
輸出: 0
筆者拿到這道題的時候開始並沒有寫出很簡潔的程式碼,判斷了一下如果這個數比數組裡所有的數字都小的情況,還判斷了比數組裡數字都大的極端值,但是最後發現這樣的思路好像有點多慮,於是修改後有了下下面的程式碼
int searchInsert(int* nums, int numsSize, int target)//大家可以這麼理解,nums【0】如果大於目標就返回0位置說明目標最小
//,如果判斷的過程中目標比所有的陣列都大,那就返回numsSize,這樣他就成了陣列的最大位置
{
int i = 0;
for(i = 0; i < numsSize; i++)
{
if(nums[i] >= target)
{
return i;
}
}
return numsSize;
}```