題目:
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
例如:
排序陣列:1,3,5,7,9
給定目標值:5
返回:4
排序陣列:1,6,7,9,11
給定目標值:5
返回:3
解決辦法:(二分查詢)
利用二分查詢的思想,給出left,right,mid的值,迴圈條件為left<=right,當nums[mid]等於目標數時就
可以之間返回mid值,也就是目標數在該陣列中的位置。如果是nums[mid]小於目標數則說明此時在陣列中沒有
找到目標數且目標數字於mid的右邊,所以left=mid+1,反之則是right-1。迴圈結束返回left的值,就是目標
數插入的位置。
**:
public int searchinsert(int nums, int target) else if(nums[mid]<=target)
else
}return left;
}
嘎 陣列 搜尋插入位置
題目 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。解答 其中一開始沒有注意到target nums len 1 的情況 class solution int res 0 for int i 0 i...
向陣列中插入元素
package com.cn.learn.e4 author 0 向陣列中插入元素 public class insert4 5num 原來位置元素向右挪一位 這個迴圈理解上有點難度,首先,i一定是i scores.length 1,如果不減一,會陣列越界 for int i scores.leng...
向陣列中插入元素
package com.cn.learn.e4 author 0 向陣列中插入元素 public class insert4 5num 原來位置元素向右挪一位 這個迴圈理解上有點難度,首先,i一定是i scores.length 1,如果不減一,會陣列越界 for int i scores.leng...