일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- FIT XR
- 영어공부
- 3줄정리
- 화상영어
- 30분
- 읽기
- 뭐든
- 링피트
- 10분
- 영어원서읽기
- 사이드
- 매일
- 스탭퍼
- 파비최
- 프로젝트
- 개발자
- 쓰릴오브파이트
- 운동
- Writing
- 만화도
- Daily Challenge
- 월간
- 잡생각
- 리얼 클래스
- 괜찮음
- realclass
- Problem Solving
- 미드시청
- leetcode
- English
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/range-sum-query-2d-immutable/
Range Sum Query 2D - Immutable - 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
오늘은 오랜만에 Medium 등급의 문제가 나왔다.
생각보다 어려웠다. 2D 누적합 문제였는데, 단순 for문으로 풀었더니 TL이 발생해서 DP로 수정했다.
# TL 발생 코드
class NumMatrix:
def __init__(self, matrix: List[List[int]]):
self.matrix = matrix
def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:
res = 0
for y in range(row1, row2+1):
for x in range(col1, col2+1):
res += self.matrix[y][x]
return res
# PASS한 코드
class NumMatrix:
def __init__(self, matrix: List[List[int]]):
self.dp=[[0] * (len(matrix[0])+1) for _ in range(len(matrix)+1)]
for r in range(len(self.dp)-1):
for c in range(len(self.dp[0])-1):
self.dp[r+1][c+1]=matrix[r][c] + self.dp[r][c+1] + self.dp[r+1][c] - self.dp[r][c]
def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:
return self.dp[row2+1][col2+1] - self.dp[row1][col2+1] - self.dp[row2+1][col1] + self.dp[row1][col1]
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
Today's Challenge (0) | 2022.06.05 |
---|---|
Today's Challenge (0) | 2022.06.04 |
Today's Challenge (0) | 2022.06.02 |
Today's Challenge (0) | 2022.06.01 |
Today's Challenge (0) | 2022.05.31 |
Comments