day31|leetcode|C++|贪心|455.分发饼干|376. 摆动序列|53. 最大子数组和

局部最优解,是一种感觉

455.分发饼干

链接:455. 分发饼干

thought

如何让更多的孩子吃到合适的饼干呢,重排来实现局部最优,每次我们都挑出当前胃口最小的孩子,从小到大找饼干,只要满足就res++,当最大的饼干都不能满足当前孩子时,返回结果

完整C++代码如下

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {int res=0;sort(g.begin(),g.end());sort(s.begin(),s.end());for(int i=0,j=0;i<s.size()&&j<g.size();i++){if(s[i]>=g[j]){j++;res++;}}return res;}
};

376. 摆动序列

链接:376. 摆动序列

thought

摆动中,如何始终保持局部最优,只要不断寻找下一个差值不同的即可,这个过程中,用reverse记录即可

完整C++代码如下

class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int res = 0;int reverse = 0; for(int i = 1; i < nums.size(); i++){if(nums[i-1]<nums[i] && reverse != 1){res++;reverse = 1;}else if(nums[i-1]>nums[i] && reverse != 2){res++;reverse = 2;} }return res + 1; }
};

53. 最大子数组和

链接:53. 最大子数组和

thought

  • 本题的精髓在于如何在不断遍历中始终记录最大值,答案是用一个相同长度的数组逐个记录当前遍历过的nums和
  • 可以建立一个与原数组长度等长的数组,把新数组的值依次更新为(新数组的上一个元素的值与原数组当前索引处元素相加)与(原数组当前元素值)的最大值 最后再遍历新数组的最大值即为解

完整C++代码如下

class Solution {
public:int maxSubArray(vector<int>& nums) {int size=nums.size();if(size==1)return nums[0];vector<int>nums2(size);nums2[0]=nums[0];for(int i=1;i<size;i++){if(nums2[i-1]<0){nums2[i]=nums[i];}else{nums2[i]=nums[i]+nums2[i-1];}}int max=nums2[0];for(int i=1;i<size;i++){if(max<nums2[i]){max=nums2[i];}}return max;}
};

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

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

相关文章

Unity关于实现雨刮器shader效果实现

Unity关于实现雨刮器shader效果实现 一、绘制雨滴 二、序列图使用 三、雨滴UV序列图UV相加

打造个性化日期选择:闭包实现的datePicker封装新体验

在数字时代的浪潮中,我们每天都在与各种应用程序和工具打交道。其中,日期选择器(datePicker)无疑是用户界面设计中的一大亮点,它帮助我们快速、准确地选择日期,极大地提升了用户体验。然而,市面上的datePicker组件往往千篇一律,缺乏个性化定制。今天,我要为大家种草一…

前端理论总结(js)——js垃圾回收机制 // 堆和栈的区别

两种方式&#xff1a; 引用计数 1&#xff1a;先声明一个变量&#xff0c;并将一个引用类型的值赋给该变量&#xff0c;那么这个引用类型的引用次数为1&#xff0c;计数为1 2&#xff1a;如果同一个引用类型的值又赋给其他变量&#xff0c;那么这个引用类型的值被引用的次数就…

[项目前置]websocket协议

websocket协议介绍 WebSocket 协议是一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更简单&#xff0c;允许服务器主动向客户端推送数据。它在 2011 年成为国际标准&#xff0c;现在被所有现代浏览器支持。WebSocket 设计用于…

0058__developer-roadmap最全的开发者技术学习路线

GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. 259k Star&#xff01;这是我见过最全的开发者技术学习路线&#xff01; - 掘金

iNet Network Scanner Mac 网络扫描工具

iNet Network Scanner for Mac是一款功能强大的网络扫描工具&#xff0c;专为Mac用户设计。它提供了全面而深入的网络分析功能&#xff0c;使用户能够轻松获取Mac连接的网络和设备的详细信息。 软件下载&#xff1a;iNet Network Scanner Mac v3.1.0激活版 这款软件具备多种扫描…

WPF —— Menu数据绑定实例

{Binding} 因为我们操作这个集合对象&#xff0c;而不是集中某个对象&#xff0c;所以直接写{Binding}就行 如果绑定是list集合的某个对象属性时候&#xff0c;需要{bindingvpath 属性名} <Menu x:Name"m1" ItemsSource"{Binding}">&l…

业务服务:xss攻击

文章目录 前言一、使用注解预防1. 添加依赖2. 自定义注解3. 自定义校验逻辑4. 使用 二、使用过滤器1. 添加配置2. 创建配置类3. 创建过滤器4. 创建过滤器类5. 使用 前言 xss攻击时安全领域中非常常见的一种方法&#xff0c;保证我们的系统安全是非常重要的 xss攻击简单来说就…

P2123皇后游戏

P2123皇后游戏 参考题解 #include <iostream> #include <algorithm> using namespace std;int T; int n; long long res;struct Person {int a,b,d; }p[20005];bool person_cmp(const Person& x,const Person& y) {if(x.d y.d){if(x.d < 0)return x.a …

torchrun在验证集使用一个GPU时报NCCL超时:Watchdog caught collective operation timeout的解决方案

有时候在分布式训练时&#xff0c;可能会出现nccl通信超时的问题&#xff0c;出现的原因好像是在某些数据处理、加载等过程&#xff0c;多个进程一起完成&#xff0c;但是某些计算&#xff08;比如loss具体不知道都有啥&#xff09;需要rank0自己来做&#xff0c;但是由于默认的…

语言模型:解密AI语言理解之道

在这个信息爆炸的时代,我们每天都在与海量的文本数据打交道。如何从这些文本中提炼出有价值的信息,成为了科技界的一大挑战。而语言模型,正是解决这一挑战的关键技术之一。今天,就让我们一起走进语言模型的神秘世界,探索其原理、实战与评估的奥秘。 一、原理篇:语言模型…

Javascript——Symbol简单了解

一、Symbol(符号) 1.1 MDN链接&#xff1a;yield - JavaScript | MDN (mozilla.org) 1.2 Symbol简介 Symbol(符号)是ECMAScript6新增的数据类型。符号是原始值&#xff0c;且符号实例是唯一、不可变的。符号的用途是确保对象属性使用唯一标识符&#xff0c;不会发生属性冲突…

TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下 二、相关代码实现 1、服务器端代码 package com.company;import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket;public class Main {public static void main(String[] args) {…

5.88 BCC工具之tcpsynbl.py解读

一,工具简介 tcpsynbl工具以直方图的形式显示SYN到达时的TCP SYN积压大小。这可以让我们了解应用程序距离达到积压限制并丢弃SYN(导致SYN重传产生性能问题)还有多远。 TCP SYN 数据包则通常用于启动 TCP 三次握手过程的第一次握手。 二,代码示例 #!/usr/bin/env python…

javaWeb健身房管理系统

一、简介 随着人们健康意识的增强和生活水平的提高&#xff0c;健身已经成为了现代人生活中不可或缺的一部分。为了更好地管理健身房的日常运营&#xff0c;我们设计并开发了一款基于 JavaWeb 的健身房管理系统。本系统采用了最新的技术&#xff0c;包括 Spring Boot、MyBatis…

nacos集群搭建实战

集群结构图 初始化数据库 Nacos默认数据存储在内嵌数据库Derby中&#xff0c;不属于生产可用的数据库。官方推荐的使用mysql数据库&#xff0c;推荐使用数据库集群或者高可用数据库。 首先新建一个数据库&#xff0c;命名为nacos&#xff0c;而后导入下面的SQL&#xff08;直…

智慧工地源码 数字孪生可视化大屏 工地管理平台系统源码 多端展示(PC端、手机端、平板端)

智慧工地源码 数字孪生可视化大屏 工地管理平台系统源码 多端展示&#xff08;PC端、手机端、平板端&#xff09; 智慧工地系统多端展示&#xff08;PC端、手机端、平板端&#xff09;;数字孪生可视化大屏&#xff0c;一张图掌握项目整体情况;使用轻量化模型&#xff0c;部署三…

ubuntu22.04配置Azure Kinect DK深度相机

一.安装SDK 今天我来配置一下微软公司的Azure Kinect DK深度相机,以前在ubuntu18.04上配置过,因为官方说唯一支持linux版本是18.04,所以在18.04中配置还算顺利 but这不代表不可以在更高版本的ubuntu中使用,只不过需要自己去多配置一些东西 apt 源安装 更新源: c…

25.7 MySQL 数据库和表的基本操作

1. 基础知识 1.1 一条数据的存储过程 存储数据确实是处理数据的基石, 只有确保数据被准确无误且有条理地存储, 我们才能对其进行深入的处理和细致的分析. 否则, 这些数据就像是一团毫无章法的乱麻, 让我们难以捉摸其内在的逻辑和价值.那么, 如何才能够将用户那些与经营紧密相关…