24. 122.买卖股票的最佳时机II,55. 跳跃游戏, 45.跳跃游戏II,1005.K次取反后最大化的数组和

第一天没有利润,至少要第二天才会有利润,所以利润的序列比股票序列少一天!

从图中可以发现,其实我们需要收集每天的正利润就可以,收集正利润的区间,就是股票买卖的区间,而我们只需要关注最终利润,不需要记录区间。那么只收集正利润就是贪心所贪的地方!

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

class Solution {
public:int maxProfit(vector<int>& prices) {int ans = 0, cur = INT32_MAX;for(int i = 0; i < prices.size(); i++){if(prices[i] < cur) cur = prices[i];else {ans = ans + (prices[i] - cur);cur = prices[i];}}return ans;}
};

class Solution {
public:bool canJump(vector<int>& nums) {int max_cover = 0;for(int i = 0; i <= max_cover; i++){max_cover = max(max_cover, i + nums[i]); //注意这里是nums[i] + i!!!!!!if(max_cover >= nums.size() - 1) return true;}return false;}
};

class Solution {
public:int jump(vector<int>& nums) {if(nums.size() <= 1) return 0;int ans = 0, next_cover = 0, cur_cover = nums[0];for(int i = 0; i < nums.size(); i++){next_cover = max(next_cover, i + nums[i]);if (cur_cover >= nums.size() - 1) return ans + 1; //相当于剪枝,该判断不能嵌套到下面if语句中!!!!!!if(cur_cover == i) {cur_cover = next_cover;ans = ans + 1;}}return -1;}
};

class Solution { //版本一 条件判断比较复杂
public:int largestSumAfterKNegations(vector<int>& nums, int k) {int ans = 0, index;// 第一步 从小到大排序sort(nums.begin(), nums.end());// 第二步 从小到大反转负数,nums[index] < 0要放后面for(index = 0; k > 0 && index < nums.size() && nums[index] < 0; index++){nums[index] = -nums[index]; k--;}// 第三步 反转绝对值最小的正数if(k % 2 == 1) {if((index> 0 && index < nums.size() && nums[index] > nums[index - 1]) || index == nums.size()) index = index - 1;nums[index] = -nums[index];}// 第四步 求和返回for(int num : nums) ans += num;return ans;}
};
class Solution { // 版本二 注意仿函数写法,必须用static修饰static bool cmp(int a, int b) { // 注意仿函数的写法!!!!!!return abs(a) > abs(b);
}
public:int largestSumAfterKNegations(vector<int>& A, int K) {int res = 0;// 第一步 将数组按照绝对值大小从大到小排序sort(A.begin(), A.end(), cmp);// 第二步 从前向后遍历,遇到负数将其变为正数for (int i = 0; K > 0 && i < A.size(); i++) {if(A[i] < 0) {A[i] = -A[i]; K--;}}// 第三步 若K还大于0,那么反复转变数值最小的元素if (K % 2 == 1) A[A.size() - 1] *= -1;// 第四步 求和返回for (int a : A) res += a;return res;}
};

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

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

相关文章

在FPGA程序中Handshake(握手)和Register(寄存器)区别

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是两种不同的通信和数据传输机制。它们各有特点和适用场景。以下是它们的区别和应用场景的详细解释&#xff1a; Register&#xff08;寄存器&#xff09; 特点&#…

CentOS6禁止锁屏

在电源中设置后还是会锁屏, 原因是有屏幕保护程序 电源管理都 “从不” 一些AI的回答 在CentOS 6系统中&#xff0c;如果你想要禁用锁屏功能&#xff0c;可以编辑/etc/kbd/config文件。这个文件通常包含了键盘相关的设置&#xff0c;包括密码策略和屏幕锁定选项。 首先打开终…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十六章 Linux 第一个程序 HelloWorld

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

14-57 剑和诗人31 - LLM/SLM 中的高级 RAG

​​​ 首先确定几个缩写的意思 SLM 小模型 LLM 大模型 检索增强生成 (RAG) 已成为一种增强语言模型能力的强大技术。通过检索和调整外部知识&#xff0c;RAG 可让模型生成更准确、更相关、更全面的文本。 RAG 架构主要有三种类型&#xff1a;简单型、模块化和高级 RAG&…

数据库第五次作业---多表查询

数据库第五次作业----多表查询 新增员工表emp和部门表dept create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charsetutf8; insert into dept values (…

算法:字符串相关

目录 题目一&#xff1a;最长公共前缀 题目二&#xff1a;最长回文子串 题目三&#xff1a;二进制求和 题目四&#xff1a;字符串相乘 题目一&#xff1a;最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀&#xff0c;返回空字符串 "…

阶乘尾数00

题目链接 阶乘尾数 题目描述 注意点 算出 n 阶乘有多少个尾随零 解答思路 n阶乘有多少个尾随零取决于阶乘中有多少个2 * 5的组合&#xff0c;其中阶乘中2的数量一定多于5的数量&#xff0c;所以关键是要找到由多少个质因子5n的阶乘中质因子5的数量等于不断将n除以5&#x…

STM32快速搭建项目框架

注&#xff1a;编写本博客的原因&#xff0c;学习期间基于复习之前知识点的需要&#xff0c;故撰写本教程&#xff0c;即是复习前面的知识点也是作为博客的补充 1.0 文件夹的创建 创建一个STM32项目为模版工程&#xff0c;问价夹下分别包含4个子文件夹&#xff0c;一个是Librar…

【C++项目】从零实现一个在线编译器

前言 身为一名程序员&#xff0c;想必大家都有接触过像leetcode这样的刷题网站&#xff0c;不知你们在刷题的过程中是否思考过一个问题&#xff1a;它们是如何实现在线编译运行的功能。如果你对此感到好奇&#xff0c;那么本文将一步步带你来实现一个简易在线编译器。 项目概…

深入了解线程锁的使用及锁的本质

文章目录 线程锁的本质局部锁的使用 锁的封装及演示线程饥饿问题 线程加锁本质可重入和线程安全死锁问题 根据前面内容的概述, 上述我们已经知道了在linux下关于线程封装和线程互斥,锁的相关的概念, 下面就来介绍一下关于线程锁的一些其他概念. 线程锁的本质 当这个锁是全局的…

Vue使用Echarts(入门级)

最终效果&#xff1a; npm install echarts --save // 先安装echarts<template><!-- 创建一个dom区域用于挂载echarts图表 --><div id"chart" style"width: 600px;height:500px;"/> </template> <script> import * as ech…

WPF依赖附加属性

依赖附加属性的定义 基本过程&#xff1a;声明、注册、包装 依赖附加属性必须在依赖对象&#xff0c;附加属性不一定&#xff0c;关注的是被附加的对象是否是依赖对象 快捷方式&#xff1a;propa tab 关键字&#xff1a;RegisterAttached // 方法封装 public static int …

4.MkDocs样式

学习 Admonitions(警告) - Material for MkDocs (wdk-docs.github.io) 提示 - Material for MkDocs 中文文档 (llango.com) Buttons(按钮) - Material for MkDocs (wdk-docs.github.io) 建议去看这些网站&#xff0c;更为详细。 常用功能 便利贴 ​​ 开启 markdown_ex…

FL Studio 24.1.1.4234 (Windows) / 24.1.1.3884 (Mac OS X)

FL Studio 24.1.1.4234 (Windows) / 24.1.1.3884 (Mac OS X) 主页多媒体音频编辑FL Studio 24.1.1.4234 (Windows) / 24.1.1.3884... FL Studio 图标 FL Studio&#xff08;前身为 FruityLoops&#xff09;是一款功能强大的音乐制作环境或数字音频工作站&#xff08;DAW&#x…

基于Java的科大讯飞大模型API调用实现

写在前面&#xff1a;因为现在自己实习的公司新拓展的一个业务是结合AI的低代码平台&#xff0c;我负责后端的开发&#xff0c;之前一直都是直接使用gpt或者文心一言等ui界面来直接使用大模型&#xff0c;从来没有自己调接口过&#xff0c;所以本文记录一下自己第一次使用大模型…

【密码学】分组密码概述

一、分组密码的定义 分组密码和流密码都是对称密码体制。 流密码&#xff1a;是将明文视为连续的比特流&#xff0c;对每个比特或字节进行实时加密&#xff0c;而不将其分割成固定的块。流密码适用于加密实时数据流&#xff0c;如网络通信。分组密码&#xff1a;是将明文数据…

【无聊找点事干】局域网内把window 搭建为代理服务器上网

场景描述 同一局域网内&#xff0c;server 2012可以上网&#xff0c;window 10无法上网。现在将电脑server 2012设置为代理服务器&#xff0c;使得window 10可以通过server 2012访问公网。 server 2012&#xff1a;服务端 安装代理服务器软件&#xff1a;CCProxy点击‘设置’…

『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!

GraphRAG:利用复杂信息进行发现的新方法! 文章目录 一. GraphRAG:利用复杂信息进行发现的新方法!1. 将RAG应用于私人数据集2. 整个数据集的推理3. 创建LLM生成的知识图谱4. 结果指标5. 下一步二. 参考文献微软官方推文:https://www.microsoft.com/en-us/research/blog/gra…

综合安全防护

题目 1,DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问. 2,生产区不允许访问互联网,办公区和游客区允许访问互联网 3,办公区设备10.0.2.10不允许访问DMz区的FTP服务器和HTTP服务器,仅能ping通10.0.3.10 4,办公区分为市场部和研发部,研…