우규이인우윤
Eager To Learn 🌌
우규이인우윤
전체 방문자
오늘
어제

블로그 메뉴

  • 🏡 홈
  • 🚀 깃허브
  • ⛅ 태그 클라우드
  • 분류 전체보기 (217)
    • 👨🏻‍💻 PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm 기법 (1)
      • 바킹독 (21)
    • 블로그 이사 (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • 자료구조 (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • 개발서적 (15)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (1)
      • 오브젝트 - 조영호 (7)
      • 친절한 SQL 튜닝 (7)
    • 회고 (2)
hELLO · Designed By 정상우.
우규이인우윤

Eager To Learn 🌌

👨🏻‍💻 PS/PYTHON

[파이썬 PYTHON · 자바 JAVA] LeetCode【Maximum Subarray】

2023. 3. 10. 22:29
 

Maximum Subarray - LeetCode

Can you solve this real interview question? Maximum Subarray - Given an integer array nums, find the subarray with the largest sum, and return its sum.   Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: The subarray [4,-1,2,1] has t

leetcode.com


자바 코드

class Solution {
    public int maxSubArray(int[] nums) {
        int[] dp = new int[nums.length];
        dp[0]=nums[0];
        int ans = nums[0];
        for(int i=1;i<nums.length;i++){
            dp[i]=Math.max(dp[i-1]+nums[i],nums[i]);
            ans = Math.max(ans,dp[i]);
        }

        return ans;
    }
}

파이썬 코드

class Solution(object):
    def maxSubArray(self, nums):
        ans = nums[0]

        for i in range(1,len(nums)):
            dp.append(max(nums[i],dp[i-1]+nums[i]))
        
        return max(dp)

 

dp 문제였다.

 

dp 문제인지 모르고 한참 다른 방법으로 풀어보려고 했었다..

 


arr = [ -2, 1, -3, 4, -1, 2, 1, -5, 4 ]

 

dp[0] = -2

 


 

dp[1] 은

 

arr[0] + arr[1] (-2 + 1) 과 arr[1] ( 1 ) 중 큰 값을 고른다.

 

dp[1] = 1

 


dp[2] 는

 

arr[0] + arr[1] + arr[2] 와 arr[1] + arr[2] 와 arr[2] 중 큰 값을 고른다.

 

근데 위 식은

 

dp[1] 이 arr[0] + arr[1] 과 arr[1] 중 큰 값을 고른 값이므로

 

dp[1]+arr[2] 와 arr[2] 중 큰 값을 고르면 된다.

 


위와 같은 방법을 계속하면

 

dp[i] = max(dp[i-1]+arr[i], arr[i] ) 식이 나온다.

 

 

    '👨🏻‍💻 PS/PYTHON' 카테고리의 다른 글
    • [파이썬 PYTHON · 자바 Java] LeetCode【Find Minimum in Rotated Sorted Array】
    • [파이썬 PYTHON · 자바 JAVA] LeetCode【Maximum Product Subarray】
    • [파이썬 PYTHON · 자바 JAVA] LeetCode【Product of Array Except Self】
    • [파이썬 PYTHON · 자바 JAVA] LeetCode【Contains Duplicate】
    우규이인우윤
    우규이인우윤
    개발자 꿈나무

    티스토리툴바