File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * [Problem]: [53] Maximum Subarray
3+ *
4+ * (https://leetcode.com/problems/maximum-subarray/description/)
5+ */
6+
7+ function maxSubArray ( nums : number [ ] ) : number {
8+ //시간복잡도 O(n)
9+ //공간복잡도 O(1)
10+ function getMax ( nums : number [ ] ) : number {
11+ let result = nums [ 0 ] ;
12+ let sum = 0 ;
13+
14+ nums . forEach ( ( num ) => {
15+ sum = Math . max ( num , sum + num ) ;
16+ result = Math . max ( sum , result ) ;
17+ } ) ;
18+
19+ return result ;
20+ }
21+
22+ //시간복잡도 O(n)
23+ //공간복잡도 O(1)
24+ function dpFunc ( nums : number [ ] ) : number {
25+ const dp = Array ( nums . length ) . fill ( 0 ) ;
26+ dp [ 0 ] = nums [ 0 ] ;
27+
28+ for ( let i = 1 ; i < nums . length ; i ++ ) {
29+ dp [ i ] = Math . max ( nums [ i ] , dp [ i - 1 ] + nums [ i ] ) ;
30+ }
31+
32+ return Math . max ( ...dp ) ;
33+ }
34+
35+ return dpFunc ( nums ) ;
36+ }
You can’t perform that action at this time.
0 commit comments