題目:
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
解答:(其中一開始沒有注意到target > nums[len - 1] 的情況)
class solutionint res = 0;
for (int i = 0; i < len-1; i++) else
if (nums[i+1] == target) }}
// 大於最後一位數
看了看別人的解法,我寫的除了for迴圈之外的上下兩種解法都可以歸結為 return nums.length;
然後我把res去掉直接就在for迴圈裡面return,最後return了nums.length,然後就出錯了,因為for迴圈裡面沒有考慮到target < nums[0]的情況,上面那種寫法不出錯是因為res初始化的時候為0了。
其實for迴圈裡面只要判斷是不是小於就可以了
publicint searchinsert(int nums, int
target)
}return
nums.length;
}
搜尋插入位置
給定乙個排序陣列和乙個目標值,如果在陣列中找到目標值則返回索引。如果沒有,返回到它將會被按順序插入的位置。你可以假設在陣列中無重複元素。二分搜尋法 如果找不到該數,high是比該數小的那個數的下標,而low是比該數大的那個數的下標。public class solution param a an i...
搜尋插入位置
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 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...
搜尋插入位置
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 直接用二分法,注意left和right的更新方式,在while中只用返回mid,if else中更新lef...