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

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.mzph.cn/diannao/31487.shtml

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

相关文章

前端XLSX解析Excel数据处理多种日期格式转换问题

一、实现思路 最近在开发一个Excel解析预览的功能&#xff0c;发现在解析Excel导入时间的时候会存在一个离谱的问题就是Excel的时间和XlSX解析之后获取的时间会不一致 例如 2024/6/19 获取的时间为 Wed Jun 19 2024 23:59:17 GMT0800&#xff0c;少了43秒&#xff0c;为了解决…

SAP PP学习笔记23 - 生产订单(制造指图)的元素2 - 决济规则(结算规则)

上一章讲了生产订单&#xff08;制造指图&#xff09;画面的基本元素。 SAP PP学习笔记22 - 生产订单&#xff08;制造指图&#xff09;的元素1-CSDN博客 本章继续讲生产订单上面的其他元素。 1&#xff0c;Settlement rule&#xff08;决济规则(结算规则)&#xff09;概要 M…

springboot容器功能

springboot容器 容器功能Spring注入组件的注解Component&#xff0c;Controller&#xff0c;Service&#xff0c;Repository案例演示 Configuration应用实例传统方式使用Configuration 注意事项和细节 Import应用实例 ConditionalConditional介绍应用实例 ImportResource应用实…

Microsoft Office免费下载安装

文章目录 前言一、下载Office Tool Plus二、部署步骤1.移除本机低版本office2.部署设置3.开始部署 前言 本人一直支持国产WPS&#xff08;因为正版Microsoft Office需要花钱&#xff09;。直到某天接触到一款免费部署Microsoft Office的软件——Office Tool Plus&#xff0c;简…

C++ //CCF-CSP计算机软件能力认证 202406-1 矩阵重塑(其一)

CCF-CSP计算机软件能力认证 202406-1 矩阵重塑&#xff08;其一&#xff09; 题目背景 矩阵&#xff08;二维&#xff09;的重塑&#xff08;reshape&#xff09;操作是指改变矩阵的行数和列数&#xff0c;同时保持矩阵中元素的总数不变。 题目描述 矩阵的重塑操作可以具体…

BEV端到端视觉论文合集|从不同的视角解析BEV感知技术

随着自动驾驶技术的不断发展&#xff0c;基于摄像头的感知系统已成为关键&#xff0c;而Bird’s Eye View (BEV)大模型在其中发挥着重要作用。BEV大模型是一种将摄像头捕捉到的2D图像转换为自上而下视角的3D感知的技术&#xff0c;使得车辆能够更好地理解周围环境。 BEV大模型…

centos7 ntp 时间同步

centos7 ntp 时间同步 Centos7服务器通过Chrony设置时间同步 timedatectl命令的使用 https://blog.csdn.net/yy8623977/article/details/123519718 Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验 https://blog.csdn.net/xzzteach/article/details/13840889…

高职人工智能专业实训课之“图像识别基础”

一、前言 随着人工智能技术的迅猛发展&#xff0c;高职院校对人工智能专业实训课程的需求日益迫切。唯众人工智能教学实训平台作为一所前沿的教育技术平台&#xff0c;致力于为学生提供高效、便捷的人工智能实训环境&#xff0c;特别在“图像识别基础”这一关键课程中&#xf…

ubuntu多版本cuda如何指定cuda版本

本文作者&#xff1a; slience_me ubuntu多版本cuda如何指定cuda版本 文章目录 ubuntu多版本cuda如何指定cuda版本1. 关于cuda设置1.1 查看当前安装的 CUDA 版本1.2 下载并安装所需的 CUDA 版本1.3 设置环境变量1.4 验证切换1.5 安装对应的 NVIDIA 驱动程序 2. 设置环境变量2.1…

【机器学习 复习】第5章 朴素贝叶斯分类器

一、概念 1.贝叶斯定理&#xff1a; &#xff08;1&#xff09;就是“某个特征”属于“某种东西”的概率&#xff0c;公式就是最下面那个公式。 2.朴素贝叶斯算法概述 &#xff08;1&#xff09;是为数不多的基于概率论的分类算法&#xff0c;即通过考虑特征概率来预测分类。 …

如何使用DeadFinder寻找失效链接

关于DeadFinder DeadFinder是一款功能强大的链接分析工具&#xff0c;该工具可以帮助广大研究人员快速地寻找目标页面中的无效链接&#xff08;死链&#xff09;。所谓死链&#xff0c;即一个页面中存在的无法被连接的一条链接。这些链接如果一直保留在页面中的话&#xff0c;…

【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

题目&#xff1a;LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 来源: ICLR 2022 模型名称: LoRA 论文链接: https://arxiv.org/abs/2106.09685 项目链接: https://github.com/microsoft/LoRA 文章目录 摘要引言问题定义现有方法的问题方法将 LORA 应用于 Transformer 实…

WINUI——自定义验证特性

背景 在开发过程中验证数据是否符合要求是经常遇到的&#xff0c;如IP的验证、邮箱的验证、电话号码的验证等等。C#中System.ComponentModel.DataAnnotations 命名空间下提供了一些常用特性用于数据的验证&#xff0c;常用的如Required、MaxLength、MinLength、Key、NotMapped…

深度学习:从理论到应用的全面解析

引言 深度学习作为人工智能&#xff08;AI&#xff09;的核心技术之一&#xff0c;在过去的十年中取得了显著的进展&#xff0c;并在许多领域中展示了其强大的应用潜力。本文将从理论基础出发&#xff0c;探讨深度学习的最新进展及其在各领域的应用&#xff0c;旨在为读者提供全…

5G与4G的区别

“4G改变生活&#xff0c;5G改变社会”&#xff0c;已经成为了通信行业的流行语。通信的变革日新月异&#xff0c;从以前的1G只能接听电话&#xff0c;到2G可以发送短信&#xff0c;时光飞逝&#xff0c;4G将智能带进了我们的生活&#xff0c;每一个“G”的进步&#xff0c;都极…

Java宝藏实验资源库(4)对象数组

一、实验目的 学习面向对象程序设计的方法。学习建立对象数组的方法。 学习在数组中存储和处理对象。 二、实验内容、过程及结果 **10.7 (Game: ATM machine) Use the Account class created in Programming Exer cise 9.7 to simulate an ATM machine. Create ten accou…

python从入门到精通8:数字随机数

在Python中&#xff0c;随机数的生成和处理是编程中常见的需求之一。Python的标准库提供了random模块&#xff0c;该模块包含了生成各种类型随机数的函数。本教程将深入探讨Python中random模块的使用&#xff0c;包括生成随机数、随机选择、随机打乱顺序等高级用法。 1. 导入r…

大数据存储技术笔记

目录 大数据的特性 HDFS 读流程的基本步骤 HDFS 写流程的基本步骤 Mapreduce的执行过程 MapReduce 中 combiner 作用 hadoop 调度器及其工作方法 Hive 中内部表与外部表区别(创建删除角度) Hadoop 的 2 个主要组件及其功能 Hadoop MapReduce 的工作流程 正常工作的 ha…

解决Ubuntu修改完root密码还是不能登录

ubuntu使用Xftp、Xshell连接时&#xff0c;ssh服务器拒绝访问。一直显示输入密码&#xff0c;这是由于sshd的设置不允许root用户使用密码进行远程登录。 解决办法&#xff1a;修改sshd_config配置文件。如果不存在&#xff0c;检查是否安装了openssh openssh安装命令&#xf…

Qt C++中使用QFutureWatcher 等待多个异步任务 执行完成

在Qt开发中,处理耗时任务而不会阻塞主线程(通常负责图形用户界面的更新)是非常重要的。Qt提供了多种机制来实现这一点,其中QFutureWatcher结合QtConcurrent是处理并等待多个异步任务完成的一种强大方法。下面我们将详细解析一段代码,该代码演示了如何使用QFutureWatcher来…