当前位置: 首页 > news >正文

代码随想录训练营Day32:● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II

题目链接

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/

题目描述

在这里插入图片描述

思路

看完视频讲解之后豁然开朗啊简直了!!!
在这里插入图片描述
统计后一天减去前一天,差值为正数的,再把他们加起来,就是获利最大的了

class Solution {
    public int maxProfit(int[] prices) {
        int result = 0;
        //要从 1 开始,因为第 0 天刚刚买入,还没有利息
        for (int i = 1; i < prices.length; i++) {
            result += Math.max(prices[i]-prices[i-1],0);
        }
        return result;
    }
}

55. 跳跃游戏

题目链接

https://leetcode.cn/problems/jump-game/description/

题目描述

在这里插入图片描述

思路

在这里插入图片描述

class Solution {
    public boolean canJump(int[] nums) {
        if(nums.length==1) return true;
        int cover = 0;
        //cover 表示每个位置能够覆盖的长度
        // 在 cover 个长度里边走,不能超过 cover
        for (int i = 0; i <= cover; i++) {
            cover = Math.max(i+nums[i],cover);
            if(cover>= nums.length-1){
                return true;
            }
        }
        return false;
    }
}

45.跳跃游戏II

题目链接

https://leetcode.cn/problems/jump-game-ii/description/

题目描述

在这里插入图片描述

思路

太难想了/(ㄒoㄒ)/~~
没太听明白,得再看看

class Solution {
    public int jump(int[] nums) {
        if (nums == null || nums.length == 0 || nums.length == 1) {
            return 0;
        }
        //记录跳跃的次数
        int count=0;
        //当前的覆盖最大区域
        int curDistance = 0;
        //最大的覆盖区域
        int maxDistance = 0;
        for (int i = 0; i < nums.length; i++) {
            //在可覆盖区域内更新最大的覆盖区域
            maxDistance = Math.max(maxDistance,i+nums[i]);
            //说明当前一步,再跳一步就到达了末尾
            if (maxDistance>=nums.length-1){
                count++;
                break;
            }
            //走到当前覆盖的最大区域时,更新下一步可达的最大区域
            if (i==curDistance){
                curDistance = maxDistance;
                count++;
            }
        }
        return count;
    }
}

相关文章:

  • Java 中的 Math. round(-1. 5) 等于多少?
  • 软件测试 - postman高级使用
  • leetcode35-Search Insert Position
  • Saltstack 最大打开文件数问题之奇怪的 8192
  • 如何在h5和小程序中适配iphoneX及更高版本全面屏底部的安全区
  • DP:斐波那契数列模型
  • SpringCloud Alibaba Nacos 服务注册和配置中心
  • 2024.3.9|第十五届蓝桥杯模拟赛(第三期)
  • 探索AI大模型学习的未来发展与挑战
  • flutter 单例模式
  • 【CMake】所见所闻所学
  • Java中的面向对象编程有三个重要的属性:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)
  • Go语言实现SSE中转demo
  • 应急响应靶机训练-Web3题解
  • Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问
  • 面试笔记——MySQL(优化篇:定位慢查询、SQL执行计划、索引、SQL优化)
  • go的限流
  • 【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT
  • 数据库迁移测试
  • 电商平台客户反馈的数据分析与应用
  • 西甲上海足球学院揭幕,用“足球方法论”试水中国青训
  • 工行回应两售出金条发现疑似杂质:情况不属实,疑似杂质应为金条售出后的外部附着物
  • 习近平会见古共中央第一书记、古巴国家主席迪亚斯-卡内尔
  • 玉渊谭天丨中方为何此时同意与美方接触?出于这三个考虑
  • 习近平出席俄罗斯纪念苏联伟大卫国战争胜利80周年庆典
  • 保证断电、碰撞等事故中车门系统能够开启!汽车车门把手将迎来强制性国家标准