• 代码随想录算法训练营第三十一天| 455 分发饼干 376 摆动序列 53 最大子数组和


    目录

    455 分发饼干

    376 摆动序列

    53 最大子数组和


     

    455 分发饼干

    将胃口值与饼干进行排序使其从小到大。 

    从后向前遍历胃口值,并取得此时最大的饼干值,如果饼干大于当前胃口值则将答案res加一,并且将饼干减一。

    1. class Solution {
    2. public int findContentChildren(int[] g, int[] s) {
    3. int res = 0;
    4. Arrays.sort(s);
    5. Arrays.sort(g);
    6. int j = s.length - 1;
    7. for(int i = g.length - 1;i >= 0;i--){//遍历胃口
    8. if(j >= 0 && s[j] >= g[i]){
    9. res++;j--;
    10. }
    11. }
    12. return res;
    13. }
    14. }

    时间复杂度O(max(nlogn,mlogm))快速排序所占时间复杂度为nlogn与mlogm,遍历g与s所占时间复杂度为n与m

    空间复杂度O(max(logn,logm))快速排序所占的额外空间

    376 摆动序列

    设置up和down两条子序列,up序列表示到目前为止最后一个元素呈上升的最大序列的长度,down表示到目前为止最后一个元素呈下降的最大序列的长度。遍历nums,如果当前的元素比上一个小,则将down赋值为up加1,代表转换为最后一个元素呈下降的最大序列的长度。如果当前的元素比上一个大,则将up赋值为down加1,代表转换为最后一个元素呈上升的最大序列的长度。

    1. class Solution {
    2. public int wiggleMaxLength(int[] nums) {
    3. int up = 1;//表示到目前为止最后一个元素呈上升的最大序列的长度
    4. int down = 1;//表示到目前为止最后一个元素呈下降的最大序列的长度
    5. for(int i = 1;i < nums.length;i++){
    6. if(nums[i] > nums[i - 1])up = down + 1;//最后一个为下降的最大序列的长度加一,转化为上升的序列
    7. if(nums[i] < nums[i - 1])down = up + 1;//最后一个为上升的最大序列的长度加一,转化为下降的序列
    8. }
    9. return Math.max(up,down);//返回两条子序列中的最大值
    10. }
    11. }

    时间复杂度O(n)

    空间复杂度O(1)

    53 最大子数组和

    将res赋值为int的最小值,遍历nums,通过sum累加nums中的值,并且每次都判断是否需要更改res的值。如果当前sum的值小于0,说明当前累加值对之后的值一定是负收益,将sum赋值为0,继续进行遍历。

    1. class Solution {
    2. public int maxSubArray(int[] nums) {
    3. int res = Integer.MIN_VALUE;
    4. int now = 0;
    5. for(int i = 0;i < nums.length;i++){
    6. now += nums[i];
    7. res = Math.max(res,now);
    8. if(now < 0)now = 0;
    9. }
    10. return res;
    11. }
    12. }

    时间复杂度O(n)

    空间复杂度O(1)

  • 相关阅读:
    BUUCTF [BJDCTF2020]鸡你太美 1
    Go语言 Map
    基于单片机PID电机控制系统设计
    annyang语音识别与语音合成库
    【初阶数据结构】——堆的引入
    基于智能合约的银行借贷方案设计与实现
    linux服务-配置ntp时间服务
    vue项目运行出现66% buil 98% after emitting CopyPlugin
    118. 杨辉三角 --力扣 --JAVA
    环保设备用电云监控平台在火力发电厂的应用
  • 原文地址:https://blog.csdn.net/m0_72832574/article/details/134535578