티스토리 뷰

PS

leetcode) #53. Maximum Subarray

tose33 2021. 2. 22. 23:22

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
링크
«   2025/04   »
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
글 보관함