Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 7469
- persistent indexed tree
- 대수학
- 이베이트
- Ebate USA
- 이베이트코리아
- Algebraic Geometry
- Algorithm
- ccw
- round 420
- 구간쿼리
- 아시아나
- 이베이트미국
- indexed tree
- BOJ
- persistent segment tree
- gallian
- acmicpc
- 마일리지
- algebra
- 알고리즘
- Ebate Korea
- subgroup
- round 424
- k번째 수
- finite group
- self balancing binary search tree
- 대한항공
- Codeforces
- 백준
Archives
- Today
- Total
Kadane Algorithm 본문
Maximum Sum Subarray라 불리는 문제에서 슬라이딩 윈도우기법으로 O(N)에 해결하는 알고리즘
Maximum Sum Subarray란 수열의 연속 부분합중 가장 큰 값을 찾는 문제
Kadane Algorithm을 간략히 설명하자면
1. 앞에서부터 수를 하나씩 더해가면서 sum이라는 변수에 매번 값을 저장한다.
2. 만약 sum이 음수가 되는 지점이 발생한다면, sum은 0으로 초기화한다.
3. 이 sum들을 매번 maximum값으로 갱신한다.
구간의 index가 필요하다면 sum을 갱신하는 부분에 추가하여 나타낼 수 있다.
위의 내용은 1-dim array에 관한 내용이고
이를 응용하면 2-dim array에서의 문제는 O(N^3)에 해결할 수 있다. (2차원 배열에서 최대 부분합)
참고영상 : https://youtu.be/yCQN096CwWM
'Algorithm > 그밖에2' 카테고리의 다른 글
Persistent Segment Tree (0) | 2017.03.25 |
---|---|
[SCC] Tarjan's Algorithm (0) | 2016.12.30 |
최단거리 알고리즘(다익스트라, 벨만포드, 워셜플로이드) (0) | 2016.08.29 |
Heap/Radix/Quick Sort에 대하여 (0) | 2016.08.15 |
다익스트라 가중치가 음수면 안되는이유 (0) | 2016.08.08 |