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