算法描述

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
31
32
33
/*
*第一种方法,先将数组求和,从和中依次减掉数据项,查看减掉哪些项时和最大,返回最大的和!循环次数比较多,耗时长(190ms),但刚开始只想到这种思路,正在优化中......
也希望看到的人能提优化建议!
*/
方法一:
-----------------------------------------------------------------------------------
class Solution {
public int maxSubArray(int[] nums) {
int result=0;
for (int i=0;i<nums.length;i++)
{
result+=nums[i];
}
int max_result = result;
for (int i=0;i<nums.length;i++)
{
int sum = result;
for (int x=0;x<i;x++)
{
sum = sum-nums[x];
}
for (int j =nums.length;j>i;j--)
{
if (sum>max_result)
{
max_result = sum;
}
sum = sum-nums[j-1];
}
}
return max_result;
}
}