[리트코드] 35. Search Insert Position
35. Search Insert Position
나의 풀이
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function (nums, target) {
let start = 0;
let end = nums.length - 1;
while (start <= end) {
let mid = Math.floor((start + end) / 2);
if (nums[mid] === target) return mid;
else if (nums[mid] > target) end = mid - 1;
else if (nums[mid] < target) start = mid + 1;
}
return start;
};
console.log(searchInsert([1, 3, 5, 6], 5));
Runtime: 106 ms, faster than 15.66% of JavaScript online submissions for Search Insert Position
효율성 좋은 코드
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function(nums, target) {
const arrLength = nums.length;
let a = 0;
for ( let i = 0; i < arrLength; i++ ) {
if ( i === arrLength-1 && nums[i] !== target) a = i +1
if (nums[i] == target || nums[i] > target) {
return a = i
}
}
return a
};
정답 코드중에 가장 효율성이 좋은 코드인데
for문을 모두 도는 경우인데 이게 logN이 되는지 모르겠다.