贪心算法 part01

class Solution {
public:int maxSubArray(vector<int>& nums) {int result = INT32_MIN;int count = 0;for (int i = 0; i < nums.size(); i++) {count += nums[i];if (count > result) { // 取区间累计的最大值(相当于不断确定最大子序终止位置)result = count;}if (count <= 0) count = 0; // 相当于重置最大子序起始位置,因为遇到负数一定是拉低总和}return result;}
};

455.分发饼干

sort(begin(),end())

然后匹配就行;(但是代码随想录想的是用大的满足,颠倒一下饼干和投喂小孩遍历顺序就行)

376. 摆动序列

我理解了,就算是递增序列也算2!!(题目理解存在问题!!)

class Solution { 
public:int wiggleMaxLength(vector<int>& nums) {if(nums.size() < 2) return nums.size(); // 处理边界情况int count = 0;  // 初始化int flag = 0;   // 初始状态for(int i = 1; i < nums.size(); i++) {int a = nums[i] - nums[i-1]; // 计算当前差值if(a > 0 && flag <= 0) {     // 形成上升摆动count++;flag = 1;               // 更新状态为上升} else if(a < 0 && flag >= 0) { // 形成下降摆动count++;flag = -1;              // 更新状态为下降}// 当 a == 0 时,跳过,保持 flag 不变}return count+1; //我之前是 态势的比较,而元素需要+1; }
};

代码随想录

53. 最大子序和

我这里相当于自动获取了最大数值;

class Solution {
public:int maxSubArray(vector<int>& nums) {int mmax = INT_MIN;int last=0;int sum=0;int flag=0;if(nums.size()==0) return 0;if(nums.size()==1) return nums[0];for(int i=0; i<nums.size();i++){if(nums[i]>mmax) mmax=nums[i]; //全局最大单数last = max(sum,last); sum+=nums[i];last = max(sum,last); //是否更新最大数值if(sum<=0) {flag=1; sum=0;}}if(flag==1&&last<=0) return mmax;else return max(mmax,last);}
};
class Solution {
public:int maxSubArray(vector<int>& nums) {int mmax = nums[0]; // 记录全局最大值int sum = 0;        // 记录当前子数组的和for (int i = 0; i < nums.size(); i++) {sum += nums[i];           // 累加当前元素mmax = max(mmax, sum);    // 更新全局最大值---自动获取了最大数值if (sum < 0) sum = 0;     // 当前和为负时,重置为 0}return mmax; // 返回最大子数组和}
};

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

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

相关文章

Ubuntu 安装texstudio sty与texlive

手动安装需要的包 访问CTAN网站&#xff08;Comprehensive TeX Archive Network&#xff09;并下载enumitem宏包&#xff1a; enumitem CTAN页面下载后&#xff0c;将宏包解压到/usr/share/texmf/tex/latex/下。 可打开texstudio/帮助/宏包帮助下载。 如果不想手动安装一个个…

Moretl安全日志采集工具

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

计算机网络信息系统安全问题及解决策略

目 录 摘 要 前 言 一、计算机网络信息系统研究现状及安全技术 &#xff08;一&#xff09;计算机网络信息系统研究现状 &#xff08;二&#xff09;计算机网络信息系统全技术概述 二、计算机网络信息系统安全问题 &#xff08;一&#xff09;环境危害引发的安全问…

FFMPEG视频转图片

用FFMPEG视频转图片&#xff0c;并且for循环 import os import subprocess# 输入文件夹和输出文件夹路径 input_folder r"I:\xxx" output_base_folder r"D:\xxx\YOLO\data\video" output_subfolder_name "20240609"# 创建输出子文件夹 output…

银河麒麟桌面操作系统添加WPS字体

【使用场景】 银河麒麟桌面操作系统支持添加WPS字体。在银河麒麟桌面操作系统中使用WPS软件编辑文档时存在需要添加WPS字体的情况,例如字体缺失或者需要特殊字体时,需要添加WPS字体。 【操作方法】 步骤一:在互联网上搜索并下载.ttf格式的字体文件。 步骤二:下载完成后,在…

skywalking 搭建 备忘录

基础环境 apache-skywalking-apm-9.6.0.tar.gz apache-skywalking-java-agent-9.1.0.tgz elasticsearch 7.14.1 采用dockers搭建 或者手动部署 kibana 可视化 应用 微服务版 consumer.jar eureka.jar 注册中心 provider.jar skywalking 地址 https://skywalkin…

CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核

1、配置工具 虽然不怎么好用&#xff0c;但比没有强多了。具体看图&#xff1a; 时钟选着 NVIC配置 GPIO配置 2、生成的具体配置信息 NXP的配置工具里面&#xff0c;具体的波特率可以直接显示&#xff0c;这个工具没有&#xff0c;怎么办&#xff1f; 它放到了生成的代码里面…

【ETCD】ETCD 架构揭秘:内部各组件概览

ETCD 的主要组件及它们之间的关联关系如下&#xff1a; 目录 1. Client&#xff08;客户端&#xff09;2. gRPC 接口3. Etcd Server Main Loop&#xff08;ETCD 主循环&#xff09;4. Raft&#xff08;共识模块&#xff09;5. Peer Etcd Nodes&#xff08;ETCD 集群节点&#x…

使用 imageio 库轻松处理图像与视频

使用 imageio 库轻松处理图像与视频 imageio 是一个 Python 库&#xff0c;用于读取和写入多种图像和视频格式。它功能强大、易于使用&#xff0c;广泛应用于图像处理、视频编辑和数据可视化等领域。本篇文章将介绍 imageio 的基础功能、常见用法以及高级操作。 一、安装 imag…

乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级

我国油田地域广阔&#xff0c;分布着大量各种油井&#xff0c;油井开采设备的连续稳定运行是保证石油开采的首要条件。然而&#xff0c;由于油田多位于特殊地理环境中&#xff0c;因而实现油井之间的通信首要问题就是要克服地理环境所带来的限制&#xff0c;传统通信系统的建设…

windows 使用python共享网络给另外一个网卡

# -*- coding: utf-8 -*- import subprocessdef open_share(to_shared_adapter, from_shared_adapter):"""打开以太网的网络共享:return: None"""powershell_script f"""# Register the HNetCfg library (once)# regsvr32 hnetc…

DAOBase 推出 DAO POP:赋能创作者与社区,畅享链上未来

随着时代快速发展&#xff0c;链上生态也在飞速扩张。DAOBase 致力于为社区、创作者和品牌提供赋能&#xff0c;帮助他们充分挖掘去中心化技术的潜力。今天&#xff0c;我们很高兴为大家带来 DAO POP —— 一款彻底改变玩法的功能&#xff0c;让社区代币的发行和管理变得前所未…

用vscode,进行vue开发

使用Visual Studio Code&#xff08;VSCode&#xff09;进行Vue.js开发是一个很好的选择&#xff0c;因为VSCode提供了强大的编辑功能以及丰富的插件生态。以下是使用VSCode进行Vue开发的基本步骤&#xff1a; 1. 安装Node.js和npm 首先&#xff0c;确保你的计算机上安装了No…

java-使用druid sqlparser将SQL DDL脚本转化为自定义的java对象

java-使用druid sqlparser将SQL DDL脚本转化为自定义的java对象 一、引言二、环境三、待解析的DDL四、解析后的对象结构五、完整的UT类六、控制台输出总结 一、引言 在日常开发中&#xff0c;有些需要对SQL进行解析的场景&#xff0c;比如读取表结构信息&#xff0c;生成文档、…

深度学习实战智能交通计数

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化&#xff0c;该数据集包含丰富的车辆目标图像样本…

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中&#xff0c;rebase 和 merge 是两种不同的操作&#xff0c;用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起&#xff0c;但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…

前端的Python应用指南(一):快速构建 Web 服务器 - Flask vs Node.js 对比

随着前端开发技术的不断发展&#xff0c;前端开发者的技术栈也在不断扩展。如今&#xff0c;前端开发者不仅要掌握 HTML、CSS、JavaScript&#xff0c;还要掌握后端技术&#xff0c;成为全栈开发者。而在后端技术的选择上&#xff0c;Python 和 Node.js 是两种非常流行的选择。…

MySQL Explain 分析SQL语句性能

一、EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 &#xff08;1&#xff09; 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取…

QT:vlc出错处理及重新播放

这个问题一直想解决&#xff0c;昨天认真研究了一下。 要点 视频用的Widget不能重复使用&#xff0c;每次出错后&#xff0c;都要新建。 回调函数的处理。 代码1 关键在于libvlc_event_attach void VideoWidget::play() {libvlc_media_t* media;if (strstr(video_path, &…

力扣hot100——滑动窗口

3. 无重复字符的最长子串 class Solution { public:int lengthOfLongestSubstring(string str) {int ans 0;for (int i 0; i < str.size(); i) {set<int> s;for (int j i; j < str.size(); j) {if (s.find(str[j]) ! s.end()) break;s.insert(str[j]);}ans ma…