File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ dp๋ฅผ ์ด์ฉํ์ฌ ์ง์์ ์ผ๋ก ์ต๋์ ๊ฐ์ ๊ธฐ๋กํ๋ฉด์ ์ฐ์ ๋ถ๋ถ ๋ฐฐ์ด์ ์ต๋ ํฉ์ ๊ตฌํ๋ ๋ฐฉ์
3+ nums ์ ๊ธธ์ด -> N
4+ ์๊ฐ ๋ณต์ก๋ : O(N)
5+ ๊ณต๊ฐ ๋ณต์ก๋ : O(N)
6+ */
7+ class Solution2 {
8+ public int maxSubArray (int [] nums ) {
9+ int [] dp = new int [nums .length ];
10+ dp [0 ] = nums [0 ];
11+ for (int i = 1 ; i < nums .length ; i ++) {
12+ dp [i ] = Math .max (nums [i ], dp [i -1 ] + nums [i ]);
13+ }
14+
15+ for (int i = 0 ; i < dp .length ; i ++) {
16+ }
17+ return Arrays .stream (dp )
18+ .max ()
19+ .getAsInt ();
20+ }
21+ }
22+
23+ /**
24+ ์ด์ ๋ฐฉ์๊ณผ ๋์ผํ๋ ๋ณ์ ํ๋๋ก ์ด์ ๊ฐ๋ง ์ ์งํ๋ ๋ฐฉ์
25+ nums ์ ๊ธธ์ด -> N
26+ ์๊ฐ ๋ณต์ก๋ : O(N)
27+ ๊ณต๊ฐ ๋ณต์ก๋ : O(1)
28+ */
29+ class Solution {
30+ public int maxSubArray (int [] nums ) {
31+ int prevSum = nums [0 ];
32+ int result = prevSum ;
33+ for (int i = 1 ; i < nums .length ; i ++) {
34+ prevSum = Math .max (nums [i ], prevSum + nums [i ]);
35+ result = Math .max (result , prevSum );
36+ }
37+
38+ return result ;
39+ }
40+ }
You canโt perform that action at this time.
0 commit comments