일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 개발자
- 뭐든
- 3줄정리
- 링피트
- 잡생각
- 파비최
- 영어원서읽기
- 만화도
- Writing
- 사이드
- 운동
- realclass
- English
- 스탭퍼
- 읽기
- Daily Challenge
- 쓰릴오브파이트
- Problem Solving
- 30분
- FIT XR
- leetcode
- 월간
- 리얼 클래스
- 미드시청
- 10분
- 괜찮음
- 화상영어
- 매일
- 영어공부
- 프로젝트
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/
Two Sum II - Input Array Is Sorted - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
간단하게 풀 줄 알았던 문제인데 TL 발생.
원인을 찾아보니, 접근 방식이 조금 틀렸음.
최근에 회사 사람들과 문제풀이 스터디에서 풀어봤던 Two Pointer 방식으로 풀어야 함.
그렇지 않으면 TL이 발생할 수밖에..
다음부터 for statement의 횟수가 커진다 싶으면 Two Pointer를 생각해봐야겠다.
# TIME LIMIT EXCEEDED
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
l = len(numbers)
for i in range(l-1):
for j in range(i+1, l):
if numbers[i] + numbers[j] == target:
return [i+1, j+1]
if numbers[i] + numbers[j] > target:
break
# PASSED
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
i, j = 0, len(numbers) - 1
while numbers[i] + numbers[j] != target:
if numbers[i] + numbers[j] > target:
j -= 1
else:
i += 1
return [i+1, j+1]
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
Today's Challenge (0) | 2022.06.11 |
---|---|
Today's Challenge (0) | 2022.06.10 |
Today's Challenge (0) | 2022.06.08 |
Today's Challenge (0) | 2022.06.07 |
Today's Challenge (0) | 2022.06.06 |
Comments