일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- priority_queue
- JPA
- deque
- NIO
- html
- date
- spring boot
- javascript
- math
- string
- 힙덤프
- union_find
- map
- Java
- GC로그수집
- Properties
- 스택
- scanner
- BFS
- List
- Calendar
- 리소스모니터링
- dfs
- alter
- CSS
- set
- 큐
- sql
- 스프링부트
- Union-find
- Today
- Total
목록2024/10/21 (3)
매일 조금씩
칸을 이동하는 방향이 (0,0)에서 시작해서오른쪽 -> 아래쪽 -> 왼쪽 -> 위쪽 -> (반복)이라는 특징이 있다.그래서 방향 벡터를 순서에 맞게 만들어서 구현했다. class Solution { public List spiralOrder(int[][] matrix) { List res = new ArrayList(); int m = matrix.length; int n = matrix[0].length; int row = 0; int col = 0; int[] dr = {0,1,0,-1}; int[] dc = {1,0,-1,0}; int arrow = 0; int c..
위 문제를 Set을 사용하여 공간 복잡도 O(m+n)으로 풀고,별도 객체 생성 없이 O(1)로도 풀어보았다. O(1)로 풀기 위해선 이 문제의 특징을 잘 알아야한다.0인 곳의 모든 행과 열을 0으로 바꾸는 문제이기 때문에,첫번째 행, 첫번째 열만 돌면서 해당하는 행과 열에 0이 있는지 체크하고 0으로 바꿔두면 된다. 시간 복잡도는 두가지 방법 모두 O(m x n) 이다.1. 공간 복잡도 O(m+n)class Solution { public void setZeroes(int[][] matrix) { Set zRow = new HashSet(); Set zCol = new HashSet(); for(int row = 0; row 2. 공간복잡도 O..
[LinkedList의 특징]총 길이를 알수 없어서 노드를 순회해야한다.사이클이 발생할 수도 있다. [LinkedList 관련 문제의 특징]링크드 리스트 문제 중, 링크드 리스트의 head를 리턴해야하는 경우가 있다.이땐, head 노드를 next로 하는 dummy 노드를 선언해놓고 링크드 리스트에서 여러 작업을 하고, dummy.next를 리턴하는 식으로 하면 된다. 링크드 리스트의 고난도 문제들은 대부분, next의 방향을 바꿔야할 때가 있다.방향을 바꾸기 위해선 기존 next를 저장할 temp 노드가 필요하다. 여기서 더 나아가, 링크드 리스트의 크기를 알아야 해결할 수 있는 문제들이 있다.예를 들어, 링크드 리스트의 가운데 노드를 찾아야하는경우, 링크드 리스트에 순환이 있는지 파악해야하는경우 등...