栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对数组中的前n个元素从小到大排序(连续子数组的最大和)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对数组中的前n个元素从小到大排序(连续子数组的最大和)

存在重复元素: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的可变参数和重载。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号