代码随想录第30天|贪心算法

news2024/11/23 19:37:14

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

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。

在这里插入图片描述
参考
请添加图片描述

思路:

  • 贪心算法, 对每天的利润进行判断, 正则相加, 负则跳过
  • 把利润分解为每天为单位的维度,而不是从 0 天到第 3 天整体去考虑
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0;
        if (prices.size() == 1) return res;
        for (int i = 1; i < prices.size(); i++) {
            if (prices[i] - prices[i - 1] > 0) {
                res += prices[i] - prices[i - 1];
            }
        }
        return res;
    }
};

55. 跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。
在这里插入图片描述
思路:

  • 贪心策略
    • 每次跳跃寻找在可跳范围内, 可以跳最远范围的点

请添加图片描述
在这里插入图片描述

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int max_index = 0;
        for (int i = 0; i < nums.size(); i++) {
            max_index = max(max_index, nums[i] + i);
            if (i >= max_index) {
                return i == nums.size() - 1 ? true : false;
            }
        }
        return true;
    }
};

45. 跳跃游戏 II

在这里插入图片描述
在这里插入图片描述

思路:
用最少的步数增加覆盖范围

暂时没弄懂, 实现存在疑问
在这里插入图片描述


1005. K 次取反后最大化的数组和

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

class Solution {
public:
    int largestSumAfterKNegations(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        for (int i = 0; i < nums.size() && k > 0; i++) {
                if (nums[i] < 0) {
                    nums[i] = -nums[i];
                    k--;                
                } else if (nums[i] == 0) {
                    k = 0;
                } else {
                    break;
                }
        }
        sort(nums.begin(), nums.end());
        if (k % 2 == 0) {
            //k 为偶数
        } else {
            nums[0] = - nums[0];//k 为奇数
        }
        

        int res = 0;
        for (int i = 0; i < nums.size(); i++) {
            res += nums[i];
        }
        return res;
    }
};

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

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

相关文章

装备制造业CRM解决方案

01、数字化转型驱动企业&#xff0c;向“以客户需求驱动创新生产”的智能制造业转变 我国装备制造业经过多年的发展&#xff0c;取得了令人瞩目的成就&#xff0c;形成了门类齐全、具有相当规模和一定水平的产业体系&#xff1b;主要包含通用设备、专用设备、电气机械、交通运…

Adobe Illustrator 矢量绘图软件下载,Ai 2024最新版获取!

Adobe Illustrator&#xff0c;无论是艺术品、图标还是海报等设计作品&#xff0c;Adobe Illustrator都能以超凡的表现力展现出设计师们的创意与才华。 近年来&#xff0c;随着人工智能技术的迅猛发展&#xff0c;各行各业都纷纷将这一技术引入自身领域&#xff0c;以提升工作效…

白驹过隙,沧海桑田

01. 机缘 今天是我加入CSDN的第2620天&#xff0c;是我成为创作者的第1024天。2021 年 08 月 25 日我在这里分享了人生中第一篇技术文章 springboot 签名验证。 现在在回看这篇文章还能感觉到当时的青涩和技术的薄弱&#xff0c;后面每一篇文章的输出可能都是在不断的学习和进…

PgSQL-添加列、字段的注释

mysql是&#xff1a; 添加列&#xff1a;--alter table 表名 add column 列名 varchar(30);ALTER TABLE p_show ADD COLUMN points VARCHAR(100) COMMENT 所需积分;---------------------------------------------------------------------------------------------添加、修改…

记某大学的一次EduSRC的挖掘

0x1 前言 漏洞由来简述 首先讲下这个漏洞的由来吧&#xff0c;这类漏洞叫做OSS储存桶漏洞&#xff0c;是阿里云OSS存储云安全的漏洞&#xff0c;也是一个相对来讲比较新鲜的安全漏洞。我是在进行对某大学的小程序进行文件上传测试的时候发现返回包的URL里面有“OSS”字段&…

CID引流电商助力3C产品销售腾飞的实践与思考

摘要&#xff1a;随着互联网技术的不断发展和普及&#xff0c;电商行业迎来了前所未有的发展机遇。其中&#xff0c;CID引流电商作为一种新兴的电商模式&#xff0c;为商家们提供了更加精准、高效的拓客之路。尤其在3C产品领域&#xff0c;CID引流电商更是助力其销售腾飞的重要…

描述React Hooks中的useMemo和useCallback的区别和用途。

React Hooks API中的useMemo和useCallback都是用于优化性能的钩子&#xff0c;但它们的用途和工作方式略有不同&#xff1a; 推荐大家看看我过往的文章 useMemo useMemo是一个性能优化钩子&#xff0c;它返回一个记忆化的值。useMemo可以避免在组件渲染时进行昂贵的计算或操作…

Mac电脑FTP客户端推荐:Transmit 5 for Mac 中文版

Transmit 5是一款专为macOS平台设计的功能强大的FTP&#xff08;文件传输协议&#xff09;客户端软件。Transmit 5凭借其强大的功能、直观易用的界面和高效的性能&#xff0c;成为需要频繁进行文件传输和管理的个人用户和专业用户的理想选择。无论是对于新手还是经验丰富的用户…

矿产资源和技术采矿服务的电子课程

我们为Nordgold的矿产资源和技术采矿服务开发了电子课程。基于客户的内部文件&#xff0c;我们创建了课程场景并将其组织成一个学习地图。我们的设计师准备了企业风格的设计布局和视觉效果&#xff0c;使枯燥的数据、表格和图表生动起来。使用Articulate Storyline&#xff0c;…

Java 从 6 到 21 的重要变动回顾

Java 从 6 到 21 的重要变动回顾 Java 自从发布以来&#xff0c;一直是全球最受欢迎的编程语言之一。其不断发展的特性和功能&#xff0c;使得它在各种应用程序中得以广泛应用。从 Java 6 到 Java 21&#xff0c;Java 语言和平台经历了许多重要的变动。本文将深入探讨这些变动…

不出网上线CS的各种姿势(内网横向)

情况一&#xff1a;存在一台中转机器 存在一台中转机器&#xff0c;这台机器出网&#xff0c;这种是最常见的情况。 经常是拿下一台边缘机器&#xff0c;其有多块网卡&#xff0c;用于连接内外网&#xff0c;内网机器都不出网。这种情况下拿这个边缘机器做中转&#xff0c;就…

SpringBoot+Vue物流快递仓库管理系统

物流快递仓库管理是一项非常繁琐复杂的工作&#xff0c;每天要处理大量的单据数据&#xff0c;包括入库、出库、退库、调库等多项货物操作流程。因此&#xff0c;为提高库管工作的质量和效率&#xff0c;就必须根据仓库管理的特点开发库存物流信息系统。 本文立足于物流信息系…

【管理咨询宝藏134】麦肯锡咨询公司为DB物流公司价格体系优化设计方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏134】麦肯锡咨询公司为DB物流公司价格体系优化设计方案 【格式】PDF版本 【关键词】麦肯锡、物流、价格战略、定价体系 【核心观点】 - 与竞争对…

websocket服务执行playwright测试

上一篇博客从源码层面分析了playwright vscode插件实现原理&#xff0c;在上一篇博客中提到&#xff0c;backend服务是一个websocket服务。这遍博客将介绍如何封装一个websocket服务&#xff0c;通过发送消息来执行playwright测试。 初始化项目 第一步是初始化项目和安装必要的…

深入研究websocket直播中signature这个参数怎么来的,模拟自己生成一个

上一节课我们已经找到了生成signature这个字段的代码位置&#xff0c;就是这个B函数&#xff0c;嗯......听起来好像有点奇怪&#xff0c;但是它确实叫B啊&#xff0c;笑死。不管了&#xff0c;看一下里面的逻辑是啥。 注意e参数的内容是&#xff1a; {"app_name":…

PS系统教学24

去水印 仿制图章工具修复画笔工具选区-编辑-填充-内容识别 人体皮肤亮度 人体皮肤发亮 减淡工具 缺点&#xff1a;不能对所有图层取样 选择减淡工具选择高光打完高光用中间调中和一下也可以用历史记录画笔工具进行修饰也可以用加深工具进行微调 图层中的模式 滤色 曝光过…

go语言day2

使用cmd 中的 go install &#xff1b; go build 命令出现 go cannot find main module 错误怎么解决&#xff1f; go学习-问题记录(开发环境)go: cannot find main module&#xff1b; see ‘go help modules‘_go: no flags specified (see go help mod edit)-CSDN博客 在本…

docker环境部署ruoyi系统前后端分离项目

创建局域网 docker network create net-ry 安装Redis 1 安装 创建两个目录 mkdir -p /data/redis/{conf,data} 上传redis.conf文件到/data/redis/conf文件夹中 cd /data/redis/conf 3.2 配置redis.conf文件 配置redis.conf文件&#xff1a; redis.conf文件配置注意&…

函数栈帧的创建和销毁,带动图详细解析,带你大致分析汇编代码

目录 1.什么是函数栈帧 2.理解函数栈帧有什么用&#xff1f; 3.函数栈帧的创建和销毁解析 3.1什么是栈&#xff1f; 3.2 认识相关寄存器和汇编指令 3.3函数栈帧的创建和销毁解析过程 3.4函数的调用 3.5汇编代码 3.5.1函数栈帧的创建 3.5.2main函数部分 3.5.3Add函数…

无线模块433MHz和2.4GHz的功能与适用性比较

433MHz和2.4GHz这两个频段常用于无线通信中的模块&#xff0c;今天我们就来介绍这两种频段无线模块各自的特点。433MHz和2.4GHz无线模块工作频段都属于国内免许可的ISM开放频段&#xff0c;因此二者使用较为广泛。 433MHz频段无线模块位于超高频(UHF)范围内&#xff0c;具体频…