D28|买卖股票的最佳时机+跳跃游戏

news2024/11/25 18:58:48

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

初始思路:

        这道题解题的时候比较像在找规律,发现只要计算这个过程中的两数之差然后相加即可。

题解复盘:

        可以更加清晰的发现如何从题意中获得贪心的思路。

        如何贪心:局部最优:收集每天的正利润,全局最优:求得最大利润

        

// 贪心思路
class Solution {
    public int maxProfit(int[] prices) {
        int result = 0;
        for (int i = 1; i < prices.length; i++) {
            result += Math.max(prices[i] - prices[i - 1], 0);
        }
        return result;
    }
}

55.跳跃游戏

初始思路:

        感觉在这个过程中只要每一个数都大于等于1的话是一定可以到达最后一个格子的,关键在于对出现0格子的处理,难以处理。

题解复盘:

        怎么跳跃不重要,关键在于覆盖范围

        贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点。

        覆盖范围 = i+nums[i].

        i 每次移动只能在 cover 的范围内移动,每移动一个元素,cover 得到该元素数值(新的覆盖范围)的补充,让 i 继续移动下去。 

class Solution {
    public boolean canJump(int[] nums) {
       int cover = 0;
       if(nums.length==1){return true;}
       for(int i = 0;i<=cover;i++){
           cover = Math.max(cover,i+nums[i]);
           if(cover >= nums.length-1){return true;}
       }
       return false;
    }
}

        注意for循环中一定是cover而不是nums.length! 

        不然对于这种情况,i就会遍历到数组的最后一个元素4,此时i+nums[i] = 8也大于等于nums.length-1,之前对于结果的输出限制就不起作用了。


45.跳跃游戏||

初始思路&&题解复盘:

        不得不说这个思路是真的挺难想的;

        贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最少步数。

        要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最少步数!

        具体实现就是在当前覆盖范围走到尽头时,如果还没有走到终点,就更新下一个覆盖范围,并且更新result,如果走到终点就进行一个break。

class Solution {
    public int jump(int[] nums) {
        if(nums.length==1){return 0;}
        int cover = 0;
        int next = 0;
        int count = 0;
        for(int i = 0;i<nums.length;i++){
            
            next= Math.max(next,i+nums[i]);
            if(cover>=nums.length-1){break;}
            if(i==cover){
                
                if(cover<nums.length-1){
                    count++;
                    cover = next;
                }
                
            }
            
        }
        return count;

    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1301337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis高效恢复策略:内存快照与AOF

第1章&#xff1a;Redis宕机恢复的重要性和挑战 大家好&#xff0c;我是小黑。今天咱们来聊聊Redis宕机后的恢复策略。想象一下&#xff0c;你的网站突然宕机了&#xff0c;所有的数据都飘了&#xff0c;这种情况下&#xff0c;快速恢复数据就显得尤为重要。Redis作为一个高性…

neuq-acm预备队训练week 8 P1144 最短路计数

题目描述 给出一个 N 个顶点 M条边的无向无权图&#xff0c;顶点编号为 1∼N。问从顶点 1 开始&#xff0c;到其他每个点的最短路有几条。 题目限制 输入格式 第一行包含 22 个正整数 N,M&#xff0c;为图的顶点数与边数。 接下来 M 行&#xff0c;每行 2个正整数 x,y&…

江科大 STM32入门教程 P14 定时中断和定时器外部时钟

1 通用定时器中断的初始化&#xff08;Time2&#xff09; 1.1 开启RCC的TimxCLK时钟, 由于Time2是由APB1总线的外设控制的 RccAPB1PeriphClockCmd(RCC_APB1PeriPh_TIM2,ENABLE);//使能APB1总线1.2 选择时基单元时钟 选择时基单元内部时钟 TIM_InteralClockConfig(IIM2);//内…

谷歌笔记应用Notebook LM,添加Gemini Pro模型并扩大应用范围;Fine-Tuning预训练模型

&#x1f989; AI新闻 &#x1f680; 谷歌更新AI笔记应用Notebook LM&#xff0c;添加Gemini Pro模型并扩大应用范围 摘要&#xff1a;谷歌在今年5月推出的AI笔记应用Notebook LM进行了更新&#xff0c;主要添加了最新的Gemini Pro模型&#xff0c;并扩大了应用使用范围。Not…

【K8S in Action】服务:让客户端发现pod 并与之通信(1)

服务是一种为一组功能相同的 pod 提供单一不变的接入点的资源。当服务存在时&#xff0c;它的 IP 地址和端口不会改变。 客户端通过 IP 地址和端口号建立连接&#xff0c; 这些连接会被路由到提供该服务的任意一个 pod 上。 pod 是短暂&#xff0c;会删除增加&#xff0c;调度…

ffmpeg6.0之ffprobe.c源码分析二-核心功能源码分析

本篇我们继续分析: 1、ffprobe -show_packets 参数的处理流程;2、ffprobe -show_frames 参数的处理流程;3、ffprobe -show_streams 参数的处理流程;4、ffprobe -show_format 参数的处理流程; 因为前面的文章已经回顾了这些命令的使用,以及作用。本文就不在赘述,以免篇幅…

4-SpringMVC

文章目录 项目源码地址回顾-MVC什么是MVC&#xff1f;MVC各部分组成 回顾-ServletMaven创建Web项目1、创建Maven父工程pom&#xff0c;并导入依赖2、用Maven新建一个Web Module3、代码&#xff1a;HelloServlet.java3、代码-hello.jsp3、代码-web.xml4、配置Tomcat5、浏览器测试…

通过生成模拟释放无限数据以实现机器人自动化学习

该工作推出RoboGen&#xff0c;这是一种生成机器人代理&#xff0c;可以通过生成模拟自动大规模学习各种机器人技能。 RoboGen 利用基础模型和生成模型的最新进展。该工作不直接使用或调整这些模型来产生策略或低级动作&#xff0c;而是提倡一种生成方案&#xff0c;该方案使用…

分子生成领域的stable diffusion - GEOLDM

一、关于stable diffusion 很多人都知道stable diffusion&#xff0c;stable diffusion的出现改变了机器生成领域&#xff0c;让AI技术第一次无比的接近正常人。大语言模型&#xff0c;AIGC概念于是兴起。基于stable diffusion 大家开发了lora&#xff0c; hyperwork等微调技术…

React-hooks

1 hooks使命 #逻辑组件复用 逻辑与UI组件分离 React 官方推荐在开发中将逻辑部分与视图部分结耦&#xff0c;便于定位问题和职责清晰 函数组件拥有state 在函数组件中如果要实现类似拥有state的状态&#xff0c;必须要将组件转成class组件 逻辑组件复用 社区一直致力于逻辑…

【数据结构高阶】红黑树

目录 一、红黑树的概念 二、红黑树的性质 2.1 红黑树与AVL树的比较 三、红黑树的实现 3.1 红黑树节点的定义 3.2 数据的插入 3.2.1 红黑树的调整思路 3.2.1.1 cur为红&#xff0c;f为红&#xff0c;g为黑&#xff0c;u存在且为红 3.2.1.2 cur为红&#xff0c;f为红&am…

Seata配置

参考教程 seata 分布式事务的环境搭建与使用 Seata 1.4.0 nacos配置和使用&#xff0c;超详细 Seata 1.4.2 的安装 Nacos的配置和使用 官网下载地址 本文以v1.4.1为例 1.数据库及表的创建 创建seata数据库&#xff0c;创建以下表&#xff08;右键连接-》新建数据库seata-》…

MVC Gantt Wrapper:RadiantQ jQuery

The RadiantQ jQuery Gantt Package includes fully functional native MVC Wrappers that let you declaratively and seamlessly configure the Gantt component within your aspx or cshtm pages just like any other MVC extensions. 如果您还没有准备好转向完全基于客户端…

天池SQL训练营(二)-SQL基础查询与排序

-天池龙珠计划SQL训练营 Task02&#xff1a;SQL基础查询与排序 SQL训练营页面地址&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicampsql 一、SELECT语句基础 1.1 从表中选取数据 SELECT语句 从表中选取数据时需要使用SELECT语句&#xff0c;也就是只从表…

unity 2d 入门 飞翔小鸟 死亡 显示GameOver(十四)

1、添加Img create->ui->img 把图片拖进去 2、和分数一样、调整位置 3、修改角色脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//获取小鸟&#xff08;刚体&#xff09;private Rigidbod…

题目:肖恩的乘法表(蓝桥OJ 3404)

题目描述&#xff1a; 解题思路&#xff1a; 本题采用二分中的二分答案。且本题check()用不到开数组&#xff0c;所以不需要开数组&#xff0c;脑海中想象一个数组就好了 题解&#xff1a; #include<bits/stdc.h> using namespace std; using ll long long;ll n, m , k…

C# 图解教程 第5版 —— 第17章 转换

文章目录 17.1 什么是转换17.2 隐式转换17.3 显示转换和强制转换17.4 转换的类型17.5 数字的转换17.5.1 隐式数字转换17.5.2 溢出检测上下文17.5.3 显示数字转换 17.6 引用转换17.6.1 隐式引用转换17.6.2 显式引用转换17.6.3 有效显式引用转换 17.7 装箱转换17.7.1 装箱是创建副…

Python 全栈体系【四阶】(三)

第三章 matplotlib 一、基本绘图 1. 绘图核心 API 案例&#xff1a; 绘制简单直线 import numpy as np import matplotlib.pyplot as plt# 绘制简单直线 x np.array([1, 2, 3, 4, 5]) y np.array([3, 6, 9, 12, 15])plt.plot(x, y) plt.show() # 显示图片&#xff0c;阻塞…

《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》阅读笔记

论文标题 《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》 作者 Albert Gu 和 Tri Dao 初读 摘要 Transformer 架构及其核心注意力模块 地位&#xff1a;目前深度学习领域普遍的基础模型。 为了解决 Transformers 在长序列上的计算效率低下的问题…

【视频笔记】古人智慧与修行

古人的智慧 相由心生、老子悟道、佛祖成佛 多一些思考&#xff0c;多一些精神修炼。 除非我们今天能够产生与人类科技发展相并行的精神变革&#xff0c;否则永远可能也无法跳脱出历史的轮回。 视频来源 曾仕强教授周易的智慧 太极两仪四象八卦 一生二&#xff0c;二生三&…