[C++] : 贪心算法专题(第一部分)

1.柠檬水找零:

在这里插入图片描述

1.思路一:

在这里插入图片描述

柠檬水找零

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int file=0;int ten =0;for(auto num:bills){if(num == 5) file++;else if(num == 10){if(file > 0)file--,ten++;elsereturn false;}else{if(ten>=1 && file>=1)ten--,file--;else if(file>=3)file-=3;elsereturn false;}}return true;}
};

GIF题目解析

2. 将数组和减半的最小操作数:

在这里插入图片描述

1.思路一:

将数组和减半的最小操作数

在这里插入图片描述

class Solution {
public:int halveArray(vector<int>& nums) {//1.求和:long long sum = 0;for (auto num : nums){sum += num;}//2.计算一半的值:long double half = ((long double)sum) / 2;//3.记录操作数:int count = 0;priority_queue<double> qu(nums.begin(), nums.end());while (half>0)//等于或者小于都不满足循环条件{double tmp = qu.top();//获取堆顶数据qu.pop();//pop堆顶数据tmp /= 2;half -= tmp;count++;qu.push(tmp);}return count;}
};

GIF题目解析

3.最大数:

在这里插入图片描述
最大数

1.思路一:

在这里插入图片描述

class Solution {
public:string largestNumber(vector<int>& nums) {vector<string> strs;for(int num:nums){strs.push_back(to_string(num));}sort(strs.begin(),strs.end(),[](const string s1 , const string s2){return s1+s2 > s2+s1;});string ret;for(auto str:strs){ret+=str;}//下标访问字符串返回的是char&可读可写类型的数据!if(ret[0]=='0') return "0";return ret;}
};

GIF题目解析

4.摆动序列:

在这里插入图片描述
摆动序列

1.思路一:

在这里插入图片描述

class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int ret = 0;int left = 0;int right = 0;for(int i = 0 ; i < nums.size() - 1  ; i++){right = nums[i+1] - nums[i];if(right == 0) continue;if(left*right <= 0) ret++; left = right;}//第一个点是没有加入进来的!return ret+1;}
};

GIF题目解析

5.最长递增子序列

在这里插入图片描述
最长递增子序列

1.思路一:dp方法

在这里插入图片描述

class Solution {
public:int lengthOfLIS(vector<int>& nums) {int n = nums.size();vector<int> dp(n,1);//1.开始遍历:int ret = 0;for(int i=1 ; i<n;i++){//1.计算从0到i-1的递增子序列for(int j=0;j<i;j++){if(nums[j] < nums[i]){//1.注意:dp[i] = max(dp[j]+1 , dp[i]); }}ret = max(dp[i] , ret);}return ret;}
};

GIF题目解析

请添加图片描述

2.思路二:在dp基础上进行的贪心优化:

在这里插入图片描述

class Solution {
public:int lengthOfLIS(vector<int>& nums) {//1.创建dp数组保存当前遍历到的位置的递增字序列元素vector<int> dp;//1-1:第一个数一定开始就在dp里面了!dp.push_back(nums[0]);int n = nums.size();//2.遍历顺序表:for(int cur=1 ; cur<n ; cur++){//1.比最后一个数都大直接push_back()if(nums[cur] > dp.back()) {dp.push_back(nums[cur]);}//2.二分寻找!else {int left = 0 , right = dp.size()-1;while(left < right){int mid = left + (right - left)/2;if(dp[mid] < nums[cur]) left = mid + 1;else right = mid; }//3.找到数据更新!dp[left] = nums[cur];}}return dp.size();}
};

GIF题目解析

请添加图片描述

6.递增的三元子序列

在这里插入图片描述

递增的三元子序列

1.思路一:

在这里插入图片描述

class Solution {
public:bool increasingTriplet(vector<int>& nums) {int one = nums[0];int two = INT_MAX;for(int cur = 1 ; cur < nums.size() ; cur++){if(nums[cur] > two) return true;else if(nums[cur] < two){if(nums[cur] <= one) one = nums[cur];else two = nums[cur];}}return false;}
};

GIF题目解析

7.最长连续递增序列

在这里插入图片描述

最长连续递增序列

1.思路一:

在这里插入图片描述

class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {int i=0;int ret = 0;while(i < nums.size()){int j = 0;for(j = i;j<nums.size()-1;j++){if(nums[j] >= nums[j+1]) break;}ret = max(ret , j-i+1);//贪心思路j的位置在连续递增子序列的最后一个位置!i = j+1;}return ret;}
};

GIF题目解析:

请添加图片描述

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

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

相关文章

产品经理学习-策略产品指标

目录&#xff1a; 数据指标概述 通用指标介绍 Web端常用指标 移动端常用指标 如何选择一个合适的数据指标 数据指标概述 指标是衡量目标的一个参数&#xff0c;指一项活动中预期达到的指标、目标等&#xff0c;一般用数据表示&#xff0c;因此又称为数据指标&#xff1b;…

Flask笔记

一&#xff1a;模板渲染 一般的话都序列化成字符串 二&#xff1a;项目拆分 2.1 项目拆分 app.py init.py views.py models.py 模型数据 2.2 蓝图 三&#xff1a;路由参数 3.1 String 重点 3.2 int 3.3 path 3.4 UUID 3.5 any 四&#xff1a;请求方式 五&#xff1a;Requ…

苹果CMS超级播放器专业版无授权全开源,附带安装教程

源码介绍 超级播放器专业版v1.0.8&#xff0c;内置六大主流播放器&#xff0c;支持各种格式的视频播放&#xff0c;支持主要功能在每一个播放器内核中都相同效果。 搭建教程 1.不兼容IE浏览器 2.php版本推荐7.4 支持7.1~7.4 3.框架引入不支持同时引入多个播放器 json对接教…

新版 macos下安装python 2.7 python 3.x多版本简单方法 pyenv python多版本管理工具

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

C#进阶-IIS应用程序池崩溃的解决方案

IIS是微软开发的Web服务器软件&#xff0c;被广泛用于Windows平台上的网站托管。在使用IIS过程中&#xff0c;可能会遇到应用程序池崩溃的问题&#xff0c;原因可能有很多&#xff0c;包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方…

【计算机毕业设计】python+django数码电子论坛系统设计与实现

本系统主要包括管理员和用户两个角色组成&#xff1b;主要包括&#xff1a;首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端&#xff1a;pythondjango 前端&#xff1a;vue.jselementui 框架&a…

MySQL数据库的安装与环境配置

下载 下载MySQL8 安装 解压 配置MySQL环境变量 系统环境变量path D:\ProgramFiles\mysql-8.0.20-winx64\bin 1.点击属性 2.点击高级系统设置 3.点击环境变量 4.在系统变量中找到path 注意这里不是用户变量 5.新建后输入解压的地址 MySQL初始化和启动 以管理员身份运行cmd…

汽车制造厂批量使用成华制造弹簧平衡器

数年来&#xff0c;成华制造都在不断的向各行各界输出着自己的起重设备&#xff0c;与众多企业达成合作&#xff0c;不断供应优质产品。近些年&#xff0c;成华制造以其卓越的产品质量和高效的生产能力&#xff0c;成功实现了弹簧平衡器的大规模批量供应&#xff0c;为重庆数家…

STM32F407ZGT6定时器(学习笔记一)

定时器STM32非常重要的外设&#xff0c;也是比较复杂的外设&#xff0c;下面以STM32F407ZGT6为例记录学习内容&#xff1a;&#xff08;1&#xff09;基本定时功能&#xff0c;&#xff08;2&#xff09;PWM输出功能&#xff0c;&#xff08;3&#xff09;PWM互补死区、多通道移…

代数结构与图论

文章目录 图的基本概念欧拉图与哈密顿图树平面图代数系统群与环格与布尔代数 图的基本概念 图的阶&#xff1a;图中的顶点数 &#xff0c;n 个顶点被称为 n 阶图零图&#xff1a;一条边都没有 平凡图&#xff1a;一阶零图基图&#xff1a;将有向图的各条有向边改成无向边所得到…

javascript 常见事件

简介&#xff1a; JavaScript&#xff08;简称“JS”&#xff09;是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名&#xff0c;但是它也被用到了很多非浏览器环境中&#xff0c;JavaScript基于原型编程、多范式…

python+django超市进销存仓库管理系统s5264

本次设计任务是要设计一个超市进销存系统&#xff0c;通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能。系统的主要功能包括&#xff1a;首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、由管理员和员工&#…

C. Load Balancing 一个序列同时加一个数和减一个数,直到最大和最小之间相差最大为1(结论可记住)

题目&#xff1a; https://atcoder.jp/contests/abc313/tasks/abc313_c 思想&#xff1a;1.给定一个固定的B&#xff0c;求使A等于B所需的最小运算次数 2.在所有最大值和最小值最多相差1的B中&#xff0c;找出一个所需的运算次数最少的&#xff0c;即1 做法&#xff1a;构造…

python dash call_back 多output 7

效果 代码 # 导入Dash库及其相关组件&#xff0c;用于构建交互式Web应用 from dash import Dash, dcc, html, Input, Output, callback# 定义一个外部样式表&#xff0c;用于美化应用界面 external_stylesheets [https://codepen.io/chriddyp/pen/bWLwgP.css]# 创建一个D…

互联网加竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于Django与深度学习的股票预测系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff…

php学习05-常量

常量可以理解为值不变的量。常量值被定义后&#xff0c;在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数字组成&#xff0c;但数字不能作为首字母出现。 在PHP中使用define()函数来定义常量&#xff0c;该函数的语法格式如下&#xff1a; define(string cons…

【双十一特辑】爱心代码(程序员的浪漫)-李峋

前言 最近《点燃我温暖你》中李峋的爱心代码超级火&#xff0c;看着特别心动&#xff0c;这不&#xff0c;光棍节快到了&#xff0c;给兄弟们教学一波爱心代码&#xff0c;赶在双十一前表白&#xff0c;让这个双十一不在是孤单一个人&#xff01; 目录 前言 C语言简易爱心代码…

[大厂实践] Chick-fil-A的服务API流程实践

本文介绍了美国快餐连锁巨头Chick-fil-A在技术团队中引入Buf和Connect解耦API依赖并实现了良好的API定义模式。原文: Connect(ing) Chick-fil-A 背景 2018年&#xff0c;Chick-fil-A的客户技术团队遇到了一些API问题。该团队擅长构建API&#xff0c;这些API可以实现一些了不起的…

【Spring实战】13 Security+Thymeleaf自定义登录页面

文章目录 1. 执行流程2. 为什么要自定义登录页面3. 创建登录页面4. 配置 Spring Security5. 创建请求 API6. 启动服务7. 验证8. 代码详细总结 Spring Security 是一个强大的身份验证和访问控制框架&#xff0c;而 Thymeleaf 是一个用于构建动态 Web 页面的强大模板引擎。结合它…

django基础学习

django基础学习 文章目录 django基础学习django框架urls.py将请求发送到正确的视图views.py处理请求models.py定义数据模型根据models查询数据HTML模板呈现数据 Django项目结构创建虚拟环境下载django创建站点创建应用settings.py项目设置 通用类别视图会话框架身份验证视图使用…