티스토리 뷰
leetcode.com/problems/maximum-subarray/
Maximum Subarray - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
for 루프로 간단하게 푼 것
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int len = nums.size();
int ans = 0;
if(len == 1) return nums[0];
int sum = 0; bool trig = false;
for(int i = 0; i < len; i++) {
sum = 0;
for(int j = i; j < len; j++) {
sum += nums[j];
if(!trig) { ans = sum; trig = true; }
ans = max(sum, ans);
}
}
return ans;
}
};
for문에서 i값 증가되면서, nums[i]와 이전값들의 합 비교.
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int allmax = -100000000;
int cur_max = -100000000;
for(int i = 0; i < nums.size(); i++) {
cur_max = max(nums[i], cur_max + nums[i]);
allmax = max(allmax, cur_max);
}
return allmax;
}
};
처음에 allmax값과 cur_max값을 numeric_limits<int>::min()로 int의 최솟값으로 설정했는데,
cur_max + nums[i]를 하니까 int의 값의 범위를 벗어 나서 그런지 음수값 + 음수값을 했는데 양수가 나왔다.
따라서 그냥 -10억으로 수정.
'PS' 카테고리의 다른 글
백준 11057. 오르막 수 (0) | 2021.03.01 |
---|---|
백준 10844. 쉬운 계단 수 (0) | 2021.03.01 |
leetcode) #20) Valid Parentheses (0) | 2021.02.22 |
leetcode) #3. Longest Substring Without Repeating Characters (0) | 2021.02.19 |
leetcode) #1. Two sum (0) | 2021.02.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- greedy
- Kruskal
- two pointer
- Unity
- Tree
- CSS
- C++
- 자료구조
- 이분탐색
- Dijkstra
- db
- MVC
- 조합
- graph
- Implementation
- permutation
- Python
- Stack
- DP
- priority queue
- dfs
- Spring
- C
- back tracking
- floyd warshall
- Brute Force
- 재귀
- recursion
- BFS
- binary search
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함