백준&LeetCode
[LeetCode] 35. Search Insert Position (Day3)
py0922
2024. 1. 10. 12:12
- Time Limit Exceeded 발생
찾아보니 Time Limit Exceeded는 시간복잡도가 높아서 발생한다고 한다.
해당 문제는 O(logn)의 시간복잡도 조건이 있다.
class Solution {
public int searchInsert(int[] nums, int target) {
int fir = 0;
int last = nums.length-1;
while(fir<=last){
int mid = fir+last/2;
if(nums[mid]==target) return mid;
else if(nums[mid]<target) fir = mid+1;
else last = mid-1;
}
return fir;
}
}
알고보니 그냥 가벼운 실수였다;;
int mid = (fir+last)/2;

궁금한 점은 다른 사람의 코드를 확인해보니, 이렇게 쓰는 경우도 있던데 이러면 memory를 내 코드에 비해 조금 사용하게 된다. 이건 상관없는 건가? 잘 모르겠다.
int mid = fir + (last-fir)/2;

반응형
LIST