存在重复元素:53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com)
思路:先排序,再遍历一遍数组,如果相邻的数有重复的,直接返回true,否则返回false。
c++代码:
class Solution {
public:
bool containsDuplicate(vector& nums) {
sort(nums.begin(),nums.end());
int l=nums.size();
for(int i=0;i
最大子数组和:53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com)
思路:这题与最长上升子序列类似,都是简单的动态规划。这题需要注意的是求最大和的连续的子数组,关键在于连续二字,这就是与最长上升子序列做法稍微不一样的地方。dp[i]是以num[i]结尾的最大子数组和,要求dp[i]就要比较dp[i-1]+num[i]与num[i]的大小,看num[i]是单独成一个子数组大还是紧接之前的大。最后从所有的dp数组里找最大值即可。
c代码:
int maxSubArray(int* nums, int numsSize){
int pre=0,ans=nums[0];
for(int i=0;inums[i]?pre+nums[i]:nums[i];
ans=ans>pre?ans:pre;
}
return ans;
}
然后就是学了一下Java的可变参数和重载。



