๐ก ๋ฌธ์
๐ฏ ํ์ด ๊ณผ์
target
์ด ๋ฐฐ์ด์ ์กด์ฌํ ๊ฒฝ์ฐ ํด๋น ์์์ index๋ฅผ, ๋ง์ฝ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ
target
์ด ์์นํด์ผํ index ๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ๊ตฌํํ๋ ๋ฌธ์ ์
๋๋ค.
๋ฌธ์ ์กฐ๊ฑด์์ ๋ฐ๋ผ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ด๋ถ ํ์
์ ์ฌ์ฉํ๋ฉด O(logn)
์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๐จ๐ป ์ฝ๋
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function(nums, target) {
let answer = null
function findItem(head, tail) {
if (head >= tail) {
if (nums[head] === target) {
answer = head
} else {
answer = nums[head] > target ? head : head + 1
}
return
}
const mid = head + Math.floor((tail - head) / 2)
if (nums[mid] === target) {
answer = mid
} else if (nums[mid] < target) {
findItem(mid + 1, tail)
} else {
findItem(head, mid - 1)
}
}
findItem(0, nums.length - 1)
return answer
};
๋ฐ์ํ
'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 994 - Rotting Oranges (Medium) (0) | 2023.04.24 |
---|---|
LeetCode 24 - Swap Nodes in Pairs (Medium) (0) | 2023.02.20 |
LeetCode 169 - Majority Element (Easy) (2) | 2023.02.05 |
LeetCode 733 - Flood Fill (Easy) (0) | 2022.03.07 |
LeetCode 229 - Majority Element II (Medium) (0) | 2022.02.22 |
๐ฌ ๋๊ธ