Leetcode题解(十八)

51、N-Queens

---------------------------------------------------------------------------------分割线------------------------------------------------------------------

52、N-Queens II

---------------------------------------------------------------------------------分割线------------------------------------------------------------------

53、Maximum Subarray

题目:

Leetcode题解(十八)_第1张图片

题目要求在一个给定数组中,找出和最大的子数组。

算法思想很简单,就是判断当前所求之和是否小于0,如果小于0,就重新开始求和,如果大于0,则继续迭代求和。

代码如下:

 1 class Solution {
 2 public:
 3     int maxSubArray(vector<int>& nums) {
 4         int sum = nums[0];
 5         int max = nums[0];
 6         for(int i=1;i<nums.size();i++)
 7         {
 8             if(sum < 0)
 9             {
10                 sum = nums[i];
11             }
12             else
13             {
14                 sum += nums[i];
15             }
16             max = (max > sum?max:sum);
17         }
18         return max;
19         
20     }
21 };

 

你可能感兴趣的:(Leetcode题解(十八))