728x90
704. Binary Search
Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.
You must write an algorithm with O(log n) runtime complexity.
주어진 배열은 정수의 오름차순이며 타겟하는 정수를 찾는 함수를 만들자. 타겟이 배열에 있으면 인덱스를 리턴하고 타겟이 배열에 없으면 -1 을 리턴하자.
주어진 문제
Example 1:
Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4
Example 2:
Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1
통과한 답안
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
left = 0
right = len(nums) - 1
while left <= right:
mid = int((left + right) / 2)
if nums[mid] == target:
return mid
elif target < nums[mid]:
right = mid -1
else:
left = mid + 1
return -1
알고리즘 문제를 처음 도전해봤는데, 짧은 문제에 비해 손으로도 끄적거려보고 생각할게 많았습니다. 이제 시작하는 사람이지만 소이 말하는 '진짜' 코딩이 궁금하여 알고리즘 14일 플랜을 시작해봤는데, 역시 기초가 탄탄해야하고 갈길은 멉니다 ㅎㅎ
728x90
'Python' 카테고리의 다른 글
Leetcode 189. Rotate Array Python (0) | 2022.06.16 |
---|---|
Leetcode 977. Squares of a Sorted Array - Python 리트코드 투 포인터 파이썬 (0) | 2022.06.14 |
Python print return 차이 파이썬 프린트 리턴 차이 (2) | 2022.06.05 |
Python Nesting 파이썬 네스팅으로 경매 게임 만들기 (0) | 2022.05.25 |
파이썬 딕셔너리 Python Dictionary 파이썬 사전 (0) | 2022.05.25 |