📌 LeetCode [766]: Toeplitz Matrix
🔗 문제 링크
문제 설명 📄
주어진 2D 배열 matrix
가 Toeplitz 행렬인지 확인하세요.
Toeplitz 행렬이란, 각 대각선에 있는 모든 요소가 동일한 값을 가지는 행렬을 말합니다.
Solution 💻
class Solution:
def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
for i in range(1, len(matrix)):
for j in range(1, len(matrix[0])):
if matrix[i][j] != matrix[i - 1][j - 1]:
return False
return True
시간 복잡도 분석 ⏲️
- 이중 반복문:
- 행의 수:
m
- 열의 수:
n
- 전체 반복 횟수: (O(m * n))
- 행의 수:
- 최종 시간 복잡도: (O(m * n)).
공간 복잡도 분석 🗄️
- 추가 공간 사용 없음:
- 상수 크기의 변수를 사용.
- 총 공간 복잡도: (O(1)).
리팩토링 🛠️
개선된 코드
class Solution:
def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
return all(matrix[i][j] == matrix[i - 1][j - 1] for i in range(1, len(matrix)) for j in range(1, len(matrix[0])))
리팩토링 후 시간 복잡도 ⏲️
- 시간 복잡도:
- 행렬의 요소를 한 번씩만 확인: (O(m * n)).
- 최종 시간 복잡도: (O(m * n)).
리팩토링 후 공간 복잡도 🗄️
- 상수 공간 사용: (O(1)).
'알고리즘 > 리트코드' 카테고리의 다른 글
LeetCode [228]: Summary Ranges (0) | 2024.12.20 |
---|---|
LeetCode [703]: Kth Largest Element in a Stream (0) | 2024.12.20 |
LeetCode [476]: Number Complement (0) | 2024.12.19 |
LeetCode [628]: Maximum Product of Three Numbers (0) | 2024.12.19 |
LeetCode [605]: Can Place Flowers (0) | 2024.12.19 |