当前位置: 首页 > news >正文

Day 31 贪心01

理论基础 

贪心的本质是选择每一阶段的局部最优,从而达到全局最优最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧

贪心算法一般分为如下四步:

  • 将问题分解为若干个子问题
  • 找出适合的贪心策略
  • 求解每一个子问题的最优解
  • 将局部最优解堆叠成全局最优解

455.分发饼干  

题目链接:455. 分发饼干 - 力扣(LeetCode)

class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int count = 0;int start = 0;for(int i = 0; i < s.length && start < g.length; i++){if(s[i] >= g[start]) {start++;count++;}}return count;}
}

376. 摆动序列  

题目链接:376. 摆动序列 - 力扣(LeetCode)

思路:当前差值和上一个差值进行比较

class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length <= 1){return nums.length;}int curdiff = 0;int prediff = 0;int count = 1;for(int i = 1; i < nums.length; i++){curdiff = nums[i] - nums[i-1];if((curdiff > 0 && prediff <= 0) || (curdiff < 0 && prediff >=0) ){count++;prediff = curdiff;}}return count;}
}

53. 最大子序和  

题目链接:53. 最大子数组和 - 力扣(LeetCode)

思路:

class Solution {public int maxSubArray(int[] nums) {if(nums.length == 1){return nums[0];}int maxsum = nums[0];int sum =0;for(int i = 0; i < nums.length; i++){sum += nums[i];maxsum = Math.max(maxsum,sum);if(sum < 0) sum = 0;}return maxsum;}
}

相关文章:

Day 31 贪心01

理论基础 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。最好用的策略就是举反例&#xff0c;如果想不到反例&#xff0c;那么就试一试贪心吧。 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优…...

C++11特性:std::lock_guard是否会引起死锁?

今天在评审代码的时候&#xff0c;因为位于两个不同的线程中&#xff08;一个是周期性事件线程&#xff0c;一个是触发式事件线程&#xff09;&#xff0c;需要对一个资源类的某些属性进行互斥的访问&#xff0c;因此采用lock_guard互斥量包装器&#xff0c;但是在升级的过程中…...

stm32使用定时器实现PWM与呼吸灯

PWM介绍 STM32F103C8T6 PWM 资源&#xff1a; 高级定时器&#xff08; TIM1 &#xff09;&#xff1a; 7 路 通用定时器&#xff08; TIM2~TIM4 &#xff09;&#xff1a;各 4 路 例如定时器2 PWM 输出模式&#xff1a; PWM 模式 1 &#xff1a;在 向上计数 时&#xff0…...

MAC本安装telnet

Linux运维工具-ywtool 目录 1.打开终端1.先安装brew命令2.写入环境变量4.安装telnet 1.打开终端 访达 - 应用程序(左侧) - 实用工具(右侧) - 终端 #注意:登入终端用普通用户,不要用MAC的root用户1.先安装brew命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/H…...

[AIGC] 使用Spring Boot进行单元测试:一份指南

在现代软件开发过程中&#xff0c;确认你的应用正确运行是至关重要的一步。Spring Boot提供了一组实用工具和注解来辅助你在测试你的应用时&#xff0c;使得这个过程变得简单。下面就来分享一下如何在Spring Boot中进行单元测试。 文章目录 为什么需要单元测试Spring Boot单元测…...

使用 Go 语言统计 0-200000 的数字中,哪些是素数?

题目 使用 Go 语言统计 0-200000的数字中&#xff0c;哪些是素数&#xff1f; 思路 两种方法&#xff1a; 单循环遍历 1-200000 数字&#xff0c;并判断是否是素数。 使用了 Goroutine 和通道实现并发&#xff1a; 通过创建两个通道 intChan 和 primeChan&#xff0c;以及一…...

Fabric Measurement

Fabric Measurement 布料测量...

wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载材质文件Mtl 中的纹理图片最简实例(十六)

文章目录 前言一、3d 立方体 model 属性相关文件1. cube.obj2. cube.Mtl3. 纹理图片 cordeBouee4.jpg二、代码实例1. 依赖库和头文件1.1 assimp1.2 stb_image.h2. egl_wayland_obj_cube.cpp3. Matrix.h 和 Matrix.cpp4. xdg-shell-client-protocol.h 和 xdg-shell-protocol.c5.…...

面试常问:为什么 Vite 速度比 Webpack 快?

前言 最近作者在学习 webpack 相关的知识&#xff0c;之前一直对这个问题不是特别了解&#xff0c;甚至讲不出个123....&#xff0c;这个问题在面试中也是常见的&#xff0c;作者在学习的过程当中总结了以下几点&#xff0c;在这里分享给大家看一下&#xff0c;当然最重要的是…...

React腳手架已經創建好了,想使用Vite作為開發依賴

使用Vite作為開發依賴 安裝VITE配置VITE配置文件簡單的VITE配置項更改package.json中的scripts在根目錄中添加index.html現在可以瀏覽你的頁面了 安裝VITE 首先&#xff0c;在現有的React項目中安裝VITE npm install vite --save-dev || yarn add vite --dev配置VITE配置文件 …...

数据结构——双向链表(C语言版)

上一章&#xff1a;数据结构——单向链表&#xff08;C语言版&#xff09;-CSDN博客 目录 什么是双向链表&#xff1f; 双向链表的节点结构 双向链表的基本操作 完整的双向链表示例 总结 什么是双向链表&#xff1f; 双向链表是一种常见的数据结构&#xff0c;它由一系列节…...

缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

一、缓存雪崩 简单理解&#xff1a;由于原有缓存失效&#xff0c;新缓存未到期间 (例如&#xff1a;设置缓存时采用了相同的过期时间&#xff0c;在同一时刻出现大面积的缓存过期)&#xff0c;所有原本应该访问缓存的请求都去查询数据库了&#xff0c;而对数据库CPU和内存造成…...

深度学习pytorch——多层感知机反向传播(持续更新)

在讲解多层感知机反向传播之前&#xff0c;先来回顾一下多输出感知机的问题&#xff0c;下图是一个多输出感知机模型&#xff1a; 课时44 反向传播算法-1_哔哩哔哩_bilibili 根据上一次的分析深度学习pytorch——感知机&#xff08;Perceptron&#xff09;&#xff08;持续更新…...

五、分布式锁-redission

源码仓库地址&#xff1a;gitgitee.com:chuangchuang-liu/hm-dingping.git 1、redission介绍 目前基于redis的setnx特性实现的自定义分布式锁仍存在的问题&#xff1a; 问题描述重入问题同一个线程无法多次获取统一把锁。当方法A成功获取锁后&#xff0c;调用方法B&#xff0…...

ARM的三个按键实验

main.c #include "key_inc.h"//封装延时函数void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j){}}}int main(){//按键中断初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf("in main pro\n");delay(1000);}re…...

高架学习笔记之需求工程

目录 一、什么是软件需求 二、需求工程 2.1. 需求获取 2.2. 需求分析 2.3. 形成需求规格 2.4. 需求确认 2.5. 需求管理 2.5.1. 变更控制 2.5.2. 版本控制 2.5.3. 需求跟踪 2.5.4. 需求状态跟踪 一、什么是软件需求 软件需求目前没有统一的定义&#xff0c;一般是指用…...

mysql基础2多表查询

多表查询 多表关系: 一对多 案例: 部门 与 员工的关系 关系: 一个部门对应多个员工&#xff0c;一个员工对应一个部门 实现: 在多的一方建立外键&#xff0c;指向一的一方的主键 多对多 案例: 学生 与 课程的关系 关系: 一个学生可以选修多门课程&#xff0c;一门课程也可以…...

Qt 写一个邮件发送程序

最近在完成一个邮箱代替的告警功能&#xff0c;写了一个邮件发送的demo 以下为代码&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QTcpSocket> namespace Ui { class MainWindow; }class MainWindow : public QMainWin…...

swagger3快速使用

目录 &#x1f37f;1.导入依赖 &#x1f32d;2.添加配置文件 &#x1f9c2;3.添加注解 &#x1f96f;4.访问客户端 1.导入依赖 引入swagger3的依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artif…...

一键入门Ubuntu22!

目录 一、安装 二、常用目录 三、常用指令 四、用户指令 五、ssh与scp 六、服务相关 七、Python与Pycharm 八、Vim编辑器 九、Ubuntu22下使用Mysql 十、Ubuntu22下使用mongodb 十一、Ubuntu22下使用redis Ubuntu是一个基于Debian的开源操作系统&#xff0c;由Canoni…...

向量运算的几何奥秘:叉积与点积的混合运算规则解析

1. 从几何视角理解向量运算的本质 第一次接触向量运算时&#xff0c;很多人会被各种公式绕得头晕。其实换个角度看&#xff0c;这些运算规则都对应着直观的几何现象。就像小时候玩积木&#xff0c;看似简单的拼接背后藏着空间结构的奥秘。 点积像是测量两个向量的"重合度&…...

内容管理系统 CMS 发展史:从静态建站到 2026 智能一体化协同平台

内容管理系统&#xff08;CMS&#xff09;作为支撑互联网内容生态的核心基础软件&#xff0c;自诞生以来已走过 30 余年历程。它始终紧跟技术浪潮与市场需求&#xff0c;从最初简单的静态页面制作工具&#xff0c;逐步演进为集内容管理、低代码开发、智能分析、多端分发于一体的…...

统一游戏模组管理:如何用XXMI Launcher告别多工具切换的烦恼

统一游戏模组管理&#xff1a;如何用XXMI Launcher告别多工具切换的烦恼 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾经为了管理不同游戏的模组而需要在多个工具间来…...

微信聊天记录数据自救指南:WeChatMsg完全解决方案

微信聊天记录数据自救指南&#xff1a;WeChatMsg完全解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg…...

保姆级教程:在Docker容器或systemd服务里正确配置D-Bus,告别‘DBUS_SESSION_BUS_ADDRESS为空’

容器化与系统服务中的D-Bus实战&#xff1a;破解会话隔离难题 当你尝试在Docker容器中运行一个需要与宿主机桌面交互的自动化测试工具&#xff0c;或者在systemd服务里调用用户级D-Bus接口时&#xff0c;是否经常遇到那个令人头疼的错误——"DBUS_SESSION_BUS_ADDRESS环境…...

Odoo 19 AI功能实战:不用写代码,用自然语言就能自动化你的业务流程

Odoo 19 AI功能实战&#xff1a;不用写代码&#xff0c;用自然语言就能自动化你的业务流程 想象一下&#xff0c;早晨打开电脑&#xff0c;你只需要对系统说"把昨天所有未处理的客户咨询按优先级排序&#xff0c;并生成回复草稿"&#xff0c;30秒后就能收到整理好的列…...

Unity VideoPlayer常见报错解析:First video frame not zero与Color Standard问题实战

1. 解析"First video frame not zero"报错 遇到Unity VideoPlayer报出"First video frame not zero"时&#xff0c;很多开发者会一头雾水。这个错误直译过来就是"第一帧视频不是从零开始的"&#xff0c;听起来有点抽象。我用个生活中的例子解释&…...

Docker网络扫盲:除了host.docker.internal,还有哪些方法能让Dify容器访问宿主机的服务?

Docker容器与宿主机通信的5种实战方案及选型指南 当你第一次在Docker容器里尝试连接宿主机上的MySQL或Redis服务时&#xff0c;那个经典的"Connection refused"错误可能会让你困惑不已。为什么明明在宿主机上运行得好好的服务&#xff0c;到了容器里用localhost就访问…...

5分钟解锁百度网盘SVIP下载特权:Mac用户的终极加速指南

5分钟解锁百度网盘SVIP下载特权&#xff1a;Mac用户的终极加速指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾为百度网盘在Mac上的龟速下…...

霜儿-汉服-造相Z-Turbo入门必看:从零启动到生成高清古风人像全流程

霜儿-汉服-造相Z-Turbo入门必看&#xff1a;从零启动到生成高清古风人像全流程 想亲手生成一张充满诗意的古风汉服人像吗&#xff1f;比如&#xff0c;一位身着月白霜花刺绣汉服的少女&#xff0c;在江南庭院的白梅树下&#xff0c;气质清冷&#xff0c;宛如从画中走来。这听起…...