Search Insert Position (E)
題目
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Example 1:
Input: [1,3,5,6], 5
Output: 2
Example 2:
Input: [1,3,5,6], 2
Output: 1
Example 3:
Input: [1,3,5,6], 7
Output: 4
Example 4:
Input: [1,3,5,6], 0
Output: 0
題意
給定一個陣列,找到給定值的下標;如果陣列中不存在給定值,則回傳該值應當插入位置的下標,
思路
直接二分查找,
代碼實作
Java
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] < target) {
left = mid + 1;
} else if (nums[mid] > target) {
right = mid - 1;
} else {
return mid;
}
}
return left;
}
}
JavaScript
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function (nums, target) {
let left = 0, right = nums.length - 1
while (left <= right) {
let mid = Math.trunc((right - left) / 2) + left
if (nums[mid] < target) {
left = mid + 1
} else if (nums[mid] > target) {
right = mid -1
} else {
return mid
}
}
return left
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38866.html
標籤:其他
上一篇:研究一下電腦
