7. Maximum Subarray
easyAsked at GitHubFind the contiguous subarray with the largest sum — GitHub uses this Kadane warmup before stepping into hunk-coalescing scoring in their diff renderer.
By Alex Chen, Founder, InterviewChamp.AI · Last verified
Problem
Given an integer array nums, find the contiguous subarray (containing at least one number) with the largest sum and return its sum.
Constraints
1 <= nums.length <= 10^5-10^4 <= nums[i] <= 10^4
Examples
Example 1
nums = [-2,1,-3,4,-1,2,1,-5,4]6Example 2
nums = [5,4,-1,7,8]23Approaches
1. Brute force
Try every (i,j) pair.
- Time
- O(n^2)
- Space
- O(1)
let best = -Infinity;
for (let i=0;i<n;i++){let s=0;for(let j=i;j<n;j++){s+=nums[j];best=Math.max(best,s);}}
return best;Tradeoff:
2. Kadane
Track best-ending-here; either extend prior subarray or restart from the current element. Global max tracks the answer.
- Time
- O(n)
- Space
- O(1)
function maxSubArray(nums) {
let cur = nums[0], best = nums[0];
for (let i = 1; i < nums.length; i++) {
cur = Math.max(nums[i], cur + nums[i]);
best = Math.max(best, cur);
}
return best;
}Tradeoff:
GitHub-specific tips
GitHub links this to hunk-similarity scoring in `git diff --patience` — the running maximum is exactly how they score contiguous match runs.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Maximum Subarray and other GitHub interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →