数据结构与算法===贪心算法

文章目录

  • 定义
  • 适用场景
    • 柠檬水找零
    • 3.代码
  • 小结

定义

还是先看下定义吧,如下:
贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。

适用场景

由于定义如此,适用场景有限,毕竟不是所有的最优选择都能导致结果最好。而且全局不一定最优。这个应该在现实中很容易就能理解。下边给个leetcode上的例子吧。柠檬水找零。

柠檬水找零

在这里插入图片描述

下边看看代码吧

3.代码

先看看c++吧,很久之前用c++写过,代码如下:

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

再来看看python吧,如下:

class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five = ten = 0for v in bills:if v == 5:five += 1elif v == 10:ten += 1five -= 1else:if ten:ten -= 1five -= 1else:five -= 3if five < 0:return Falsereturn True

小结

贪心,一种很经典的算法,适用场景有限,而且当下的选择不能影响后边的,一旦影响,就不一定是最优。每一步都是最好的,结果未必最优,想象我们自己,生活中是不是这样呢?学习算法,可以更好的适应生活,也是为了更好的生活。OK,翻篇。

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

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

相关文章

在线教育系统怎么留住用户,什么叫k12在线教育机构?它的价值是什么?

k12在线教育机构&#xff0c;近年来时常被人提起&#xff0c;当然&#xff0c;也有很多人对此不太熟悉&#xff0c;大众的印象仍然停留在传统教育的阶段&#xff0c;所以&#xff0c;什么叫k12在线?其实&#xff0c;弄的不太明白&#xff0c;所以&#xff0c;也来给各位科普下…

Kafka的安装及接入SpringBoot

环境&#xff1a;windows、jdk1.8、springboot2 Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/ 1.概述 Kafka 是一种高性能、分布式的消息队列系统&#xff0c;最初由 LinkedIn 公司开发&#xff0c;并于2011年成为 Apache 顶级项目…

C语言-课程管理系统-大作业

C语言编写课程管理系统 1 需求分析2 需要查的知识点3 数据结构和基础函数功能3.1 课程数据结构3.2 菜单和选择项3.3 从文件中加载课程信息到内存3.4 将内存中的课程信息保存到文件3.5 将输入的字符串格式化为课程信息结构体 4 主要功能函数4.1 录入课程信息函数4.2 浏览课程信息…

2024全新小狐狸AI免授权源码

源码安装说明&#xff1a; 下 载 地 址 &#xff1a; runruncode.com/php/19757.html 1. 在宝塔新建一个站点&#xff0c;选择 PHP 版本为 7.2、7.3 或 7.4。将压缩包上传到站点的根目录&#xff0c;并设置运行目录为 /public。 2. 导入数据库文件&#xff0c;该文件位于 …

gap意识

在学习的过程中&#xff0c;遇到一个知识点搞不懂&#xff0c;或是在工作的过程中&#xff0c;遇到一个难题解决不了&#xff0c;很多时候不是我们的能力不行或是智商不够&#xff0c;而是我们当前的认知与那个知识点或难题之间存在较大的 gap。比如&#xff0c;若没学过线性代…

最大9W升压型DCDC多串LED恒流驱动

描述 AP9234是一款由基准电压源、振荡电路、误差放大电路、相位补偿电路、电流限制电路等构成的CMOS升压型DC/DC LED驱动。由于内置了低导通电阻的增强型N沟道功率 MOSFET&#xff0c;因此适用于需要高效率、高输出电流的应用电路。另外&#xff0c;可通过在VSENSE端子连接电…

Python装饰器带括号和不带括号的理解

装饰器是 Python 中一个强大且灵活的特性&#xff0c;允许用户在不修改原有函数或类定义的基础上&#xff0c;为其增加额外功能。 今天在尝试自定义 Python 装饰器的时候遇到了一个问题&#xff0c;因为以前一直是使用装饰器&#xff0c;基本没有自定义过装饰器&#xff0c;所…

vue3点击添加小狗图片,vue3拆分脚本

我悄悄蒙上你的眼睛 模板和样式 <template><div class"XueXi_Hooks"><img v-for"(dog, index) in dog1List" :src"dog" :key"index" /><button click"addDog1">点我添加狗1</button><hr …

WPF之工具栏菜单栏功能区。

1&#xff0c;菜单栏&#xff0c;工具栏&#xff0c;状态栏。 1.1&#xff0c;Menu中可添加菜单分隔条<Separator></Separator>作为分割线&#xff0c;使用Separator可以通过改变其template来自定义&#xff0c;Separator是无焦点的&#xff0c;如果简单的在MenuIt…

JavaScript异步编程——08-Promise的链式调用【万字长文,感谢支持】

前言 实际开发中&#xff0c;我们经常需要先后请求多个接口&#xff1a;发送第一次网络请求后&#xff0c;等待请求结果&#xff1b;有结果后&#xff0c;然后发送第二次网络请求&#xff0c;等待请求结果&#xff1b;有结果后&#xff0c;然后发送第三次网络请求。以此类推。…

【ARM 嵌入式 C 入门及渐进 1.2 -- 是否为 n 字节对齐】

文章目录 是否为 n 字节对齐 是否为 n 字节对齐 在C语言中&#xff0c;你可以定义一个宏来检查一个给定地址是否是n字节对齐的。这里的n应该是2的幂&#xff08;例如&#xff0c;2、4、8、16等&#xff09;。要做到这一点&#xff0c;可以利用位操作的特性。具体地&#xff0c…

品鉴中的平衡之美:如何欣赏红酒的口感与风格和谐

品鉴云仓酒庄雷盛红酒的过程&#xff0c;是对其口感与风格和谐的追求和欣赏。平衡是红酒品质的重要标志之一&#xff0c;它体现在红酒的色泽、香气、口感和余味等多个方面。通过欣赏红酒的平衡之美&#xff0c;我们可以更好地领略其精妙之处&#xff0c;感受其带来的美妙滋味。…

【Unity Animation 2D】Unity Animation 2D骨骼绑定与动画制作

一、图片格式为png格式&#xff0c;并且角色各部分分离 图片参数设置 需要将Sprite Mode设置为Single&#xff0c;否则图片不能作为一个整体 1、创建骨骼 1.1 旋转Create Bone&#xff0c;点击鼠标左键确定骨骼位置&#xff0c;移动鼠标再次点击鼠标左键确定骨骼&#xff0c…

大数据面试题第一期*4

题1、HDFS存储机制 &#xff08;1&#xff09;客户端向namenode请求上传文件 &#xff0c;namenode检查目标文件是否已存在 &#xff0c;父目录是否存在。 &#xff08;2&#xff09;namenode返回是否可以上传。 &#xff08;3&#xff09;客户端请求第一个 block上传到哪几个d…

Docker in Docker 的原理与实践

概述 Docker in Docker&#xff08;DinD&#xff09;是一个让 Docker 容器内可以运行另一个 Docker 沙箱环境的技术。常用于持续集成&#xff08;CI&#xff09;工作流程&#xff0c;其中需要构建和推送 Docker 镜像&#xff0c;而不污染主宿主机的 Docker 环境。 Docker in …

JS_jq选择器合集

基本选择器 选择器返回示范描述#id单个元素$("#test").class 集合元素 $(".test")element集合元素$("p") 所有p原素*集合元素$("*")所有原素select1,select2,selectn集合元素$("div,span,p.myClass")所有匹配原素 层次选择…

嵌入式C语言高级教程:实现基于STM32的智能健康监测手环

智能健康监测手环能够实时监控用户的生理参数&#xff0c;如心率、体温和活动量&#xff0c;对于健康管理和疾病预防非常有帮助。本教程将指导您如何在STM32微控制器上实现一个基本的智能健康监测手环。 一、开发环境准备 硬件要求 微控制器&#xff1a;STM32L476RG&#xf…

RS3236-3.3YUTDN4功能和参数介绍及PDF资料

RS3236-3.3YUTDN4功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: XDFN-4-EP(1x1) 描述: 带过温保护 输出类型: 固定 最大输入电压: 7.5V 输出电压: 3.3V 最大输出电流: 500mA RS3236-3.3YUTDN4 是一款低压差线性稳压器&#x…

kkfileview部署踩坑记录——kkfile部署启动失败、预览出错、乱码问题的处理

预览失败&#xff1a;报错 org.jodconverter.core.office.OfficeException: Could not store document: testdoc.pdf java.lang.NullPointerException: Could not open document: 1691539546735.docx 错误原因 由于kkfileView在linux上默认使用openOffice来实现转换 解决方…

leetcode 2316.统计无向图中无法互相到达点对数

思路&#xff1a;并查集 其实就是连通块的一个变形题目&#xff0c;一般的连通块题目要我们求的是连通个数&#xff0c;或者能不能到达&#xff0c;这里反过来问了。 首先&#xff0c;我们用dfs也是可以做到的&#xff0c;在dfs中统计每一个连通块的个数&#xff0c;然后用乘…