forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshinsj4653.py
More file actions
48 lines (37 loc) ยท 917 Bytes
/
shinsj4653.py
File metadata and controls
48 lines (37 loc) ยท 917 Bytes
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
[๋ฌธ์ ํ์ด]
# Inputs
- ์ ์ํ nums
# Outputs
- ๋ถ๋ถ ๋ฐฐ์ด ์ค ํฉ์ด ๊ฐ์ฅ ํฐ ๋ฐฐ์ด์ ํฉ
# Constraints
- 1 <= nums.length <= 10^5
- 10^4 <= nums[i] <= 10^4
# Ideas
๊ฐ์ฅ ํฐ ํฉ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
์ ๋ ฌ์ ๋น์ฐํ X
10^5๊ฐ ์ต๋๋ผ O(n) ๊ณ ๋ ค ํ์
-2 1 -3 4 -1 2 1 -5 4
l, r = 0, 0 -> ์์ง์ด๋ฉด์
r = 1
-2 < 1 -> -1
-2 -1 -4 0 -1 1 2 -3 1
1. ๋์ ํฉ?
-2 1 -2 4 3 5 6 1 5
5 4 -1 7 8
5 9 8 15 23
์ง๊ธ๊น์ง์ ํฉ ๋ณด๋ค ๋ค์ ์์๊ฐ ํฌ๋ฉด ๊ทธ๋๋ก ๋๊ณ , ์๋๋ฉด ํฉ์ผ๋ก ๋์ฒด
=> TC: O(n), SC: O(1)
[ํ๊ณ ]
๋จผ๊ฐ..๋๋ ค ๋ง์ถ ๋๋์ด๋ผ ํด์ค ์ฐธ๊ณ
->
"""
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
if len(nums) == 1:
return nums[0]
memo = nums[0]
for i in range(1, len(nums)):
if nums[i] < nums[i - 1] + nums[i]:
nums[i] += nums[i - 1]
return max(nums)