Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코딩테스트
- leetcode
- 백준 18222
- 분할정복
- 백준 16935
- daily challenge
- 자바
- 자바 5464
- 프로그래머스 java
- 카카오
- Java
- BFS
- 백준
- 파이썬
- dfs
- 코테
- DP
- 리트코드 자바
- java leetcode
- 자바 리트코드
- 그래프 자바
- 프로그래머스
- 스택
- leetcode 1721
- 리트코드 1557
- 스프링 에러
- 리트코드
- 인텔리제이 에러
- 구현
- java 프로그래머스
Archives
- Today
- Total
레벨업 일지
[Java/Python3] leetcode 35. Search Insert Position 본문
문제
https://leetcode.com/problems/search-insert-position/description/
Search Insert Position - LeetCode
Search Insert Position - Given a sorted array of distinct integers 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 must write an algorithm with O(log n) runtime com
leetcode.com
이진 탐색을 할줄 아니? 물어보는 문제
풀이
정렬된 배열에서의 이진 탐색 알고리즘은 다음과 같다. 자주 사용되는 O ( lon N ) 로직임으로, 아직 모른다면 꼭 공부 해야한다.
1. left = 0 , right = nums.length -1 로 양 끝단 위치를 가리키는 포인터를 생성한다.
2. left 와 right 의 절반 지점에 있는 mid 포인터를 생성.
3. mid < target 이면, [ left .. mid ] 범위 안에는 target이 존재하지 않음으로, left = mid + 1
4. mid > target 이면, [mid .. right] 범위 안에 target이 존재하지 않음으로 날린다 .
5. mid == target이면 return mid
6. 그게 아니면 , left 를 리턴한다.
코드
자바
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length-1;
int mid = left + (right - left)/2;
while(left <=right){
mid = left + (right - left)/2;
if(nums[mid] == target)return mid;
else if(nums[mid] < target) left = mid+1;
else right = mid-1;
}
return left;
}
}
파이썬
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)-1
while left <= right:
mid = left + (right-left)//2
if nums[mid] == target : return mid
elif nums[mid] < target : left = mid + 1
else : right = mid -1
return left'알고리즘 > leetcode' 카테고리의 다른 글
| [Java/Python ] leetcode 136. Single Number (0) | 2023.01.21 |
|---|---|
| [Java] leetcode 93. Restore IP Addresses (0) | 2023.01.21 |
| [Java/Python3] leetcode 300. Longest Increasing Subsequence (0) | 2023.01.15 |
| [java/python3]leetcode 1838. Frequency of the Most Frequent Element (2) | 2023.01.11 |
| [java/python3] leetcode 259. 3Sum Smaller (0) | 2023.01.10 |
Comments