【Leetcode】53. Maximum Subarray
2017-02-25 17:27
281 查看
53. Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array
the contiguous subarray
click to show more practice.
Subscribe to see which companies asked this question.
题目简述:
找出数组中的一个最大子串的和
思路简述:
一开始看是easy,结果被难倒了。
参考 Kadane's
algorithm算法
代码:
public class Solution {
//暴力搜索:超时
/*
public int maxSubArray(int[] nums) {
int maxNum = nums[0];
//时间复杂度O(N*2)
int temp=0;
for(int i=1;i<=nums.length;i++){
temp=0;
for(int k=0;k<i;k++){
temp += nums[k];
if(temp>maxNum){
maxNum = temp;
}
}
for(int j=i;j<nums.length;j++){
temp = temp-nums[j-i]+nums[j];
if(temp>maxNum){
maxNum = temp;
}
}
}
if(temp>maxNum){
maxNum = temp;
}
return maxNum;
}*/
public int maxSubArray(int[] nums) {
int sum=nums[0];
int maxNum = sum;
for(int i=1;i<nums.length;i++){
if(sum > 0){
sum += nums[i];
}else{
sum = nums[i];
}
if(sum > maxNum){
maxNum = sum;
}
}
return maxNum;
}
}
结果:
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array
[-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray
[4,-1,2,1]has the largest sum =
6.
click to show more practice.
Subscribe to see which companies asked this question.
题目简述:
找出数组中的一个最大子串的和
思路简述:
一开始看是easy,结果被难倒了。
参考 Kadane's
algorithm算法
代码:
public class Solution {
//暴力搜索:超时
/*
public int maxSubArray(int[] nums) {
int maxNum = nums[0];
//时间复杂度O(N*2)
int temp=0;
for(int i=1;i<=nums.length;i++){
temp=0;
for(int k=0;k<i;k++){
temp += nums[k];
if(temp>maxNum){
maxNum = temp;
}
}
for(int j=i;j<nums.length;j++){
temp = temp-nums[j-i]+nums[j];
if(temp>maxNum){
maxNum = temp;
}
}
}
if(temp>maxNum){
maxNum = temp;
}
return maxNum;
}*/
public int maxSubArray(int[] nums) {
int sum=nums[0];
int maxNum = sum;
for(int i=1;i<nums.length;i++){
if(sum > 0){
sum += nums[i];
}else{
sum = nums[i];
}
if(sum > maxNum){
maxNum = sum;
}
}
return maxNum;
}
}
结果:
相关文章推荐
- 【Leetcode】Lee. 53. Maximum Subarray
- leetcode-53. Maximum Subarray
- leetcode 53. Maximum Subarray 子数组最大和
- [leetcode]: 53. Maximum Subarray
- leetcode 53. Maximum Subarray
- LeetCode *** 53. Maximum Subarray
- leetcode 53. Maximum Subarray-最大子数组|动态规划
- 【LeetCode】53. Maximum Subarray
- Leetcode 53. Maximum Subarray
- leetcode-53. Maximum Subarray
- Leetcode:53. Maximum Subarray
- LeetCode - 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- leetcode 53. Maximum Subarray
- 【leetcode】53. Maximum Subarray
- LeetCode 53. Maximum Subarray O(n)实现
- [LeetCode] 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- LeetCode | 53. Maximum Subarray