ভিডিওতে দেখো — YouTube @algonur_com
কোড
Python
def maxSubArray(nums: list[int]) -> int:
cur_sum = max_sum = nums[0]
for num in nums[1:]:
# Extend current or start fresh
cur_sum = max(num, cur_sum + num)
max_sum = max(max_sum, cur_sum)
return max_sumJava
public int maxSubArray(int[] nums) {
int curSum = nums[0], maxSum = nums[0];
for (int i = 1; i < nums.length; i++) {
curSum = Math.max(nums[i], curSum + nums[i]);
maxSum = Math.max(maxSum, curSum);
}
return maxSum;
}Kotlin
fun maxSubArray(nums: IntArray): Int {
var curSum = nums[0]; var maxSum = nums[0]
for (i in 1 until nums.size) {
curSum = maxOf(nums[i], curSum + nums[i])
maxSum = maxOf(maxSum, curSum)
}
return maxSum
}C++
int maxSubArray(vector<int>& nums) {
int curSum = nums[0], maxSum = nums[0];
for (int i = 1; i < nums.size(); i++) {
curSum = max(nums[i], curSum + nums[i]);
maxSum = max(maxSum, curSum);
}
return maxSum;
}জটিলতা
O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(1)
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← Regular Expression Matchingপরের সমস্যাJump Game →