js算法设计思想之“贪心算法”

2023-11-06

  • 贪心算法是算法设计中一种方法
  • 期盼通过每个阶段的局部最优选择,从而达到全局的最优选择
  • 结果不一定是最优的

leetcode:455 分饼干

在这里插入图片描述

  • 解题思路
    • 局部最优:技能满足孩子,还消耗最小
    • 先将“较小的饼干”分给胃口最小的孩子
  • 解题步骤
    • 饼干数组和胃口数组进行生序排序
    • 遍历饼干数组,找到能满足第一个孩子的饼干
    • 然后继续遍历饼干数组,找到满足第二、三个、n个孩子的饼干

code

// s 饼干数组
// g 胃口数组
// 时间复杂度O(n*logN) 空间复杂度O(1)
var findContentChildren = function (g, s) {
	// 升序排序
	const sortFun = function(a, b) {
		return a - b
	}
	g.sort(sortFun)
	s.sort(sortFun)
	let i = 0
	s.forEach(n => {
		if (n >= g[i]) {
			i++
		}
	})
	return i
}

leetcode:122. 买卖股票的最佳时机 II

在这里插入图片描述

  • 解题思路
    • 前提:上帝视角,知道未来的价格
    • 局部最优:见好就收,见差就不动,不做任何长远打算
  • 解题步骤
    • 新建一个变量,用来总计总利润
    • 遍历价格数组,如果当前价格比昨天高。就在昨天买,今天卖,否则就不交易
    • 遍历结束后,返回所有利润之和

code

// 时间复杂度O(n), 空间复杂度O(1)
var maxProfit = function(prices) {
	let profit = 0;
	for (let i = 1; i < prices.length; i++) {
		if (prices[i] > prices[i - 1]) {
			profit += prices[i] - prices[i - 1]
		}
	}
	return profit;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js算法设计思想之“贪心算法” 的相关文章

随机推荐

  • grep正则表达式后面的单引号和双引号的区别?

    单引号 可以说是所见即所得 即将单引号内的内容原样输出 或者描述为单引号里面看到的是什么就会输出什么 单引号 是全引用 被单引号括起的内容不管是常量还是变量者不会发生替换 双引号 把双引号内的内容输出出来 如果内容中有命令 变量等 会先把变
  • 【华为机试在线训练】Day 6

    题目描述 定义一个二维数组N M 其中2 lt N lt 10 2 lt M lt 10 如5 5数组下所示 int maze 5 5 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 它表
  • 建议收藏:不能不刷的100道数字IC笔/面试题!

    一 IC设计流程及相应EDA开发工具 前端设计 逻辑设计 1 规格制定 根据客户需求 具体的功能和性能要求 制定芯片规格Spec 2 详细设计 设计方案 具体实现架构 模块划分 3 HDL编码 将实际的硬件电路功能通过HDL语言描述出来 形
  • WebRTC带宽估计

    整体架构 上面这张图是一个比较老的架构图 但是也基本能说明整体架构 早期webrtc版本带宽估计是放到接收端处理 目前最新版本带宽估计放到了发送端 但是接收端计算得到的带宽并没有废弃 而是通过rtcp remb反馈给发送端 在发送端带宽估计
  • 锁相环技术,单边带信号,信号的调制

    什么是锁相环技术 用在接收机中 因为在相干解调的时候 需要接收机产生一个和发射机同频同相的载波频率 这时候就要对发射机处的载波频率进行精确的追踪 锁相环技术就是这样精准跟踪载波频率的一种技术 锁相环 PLL 是一种数字信号处理技术 用于将输
  • html5实现坐标旋转的方法,HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)

    HTML5 Canvas中提供了实现图形平移 旋转 放缩的API 平移 translate 平移坐标translate x y 意思是把 0 0 坐标平移到 x y 原来的 0 0 坐标则变成 x y 图示如下 任何原来的坐标点p ox o
  • vue脚手架项目使用element-ui

    1 通过脚手架创建一个项目 2 在vue脚手架项目中安装elementui npm i element ui S 使用elementui 在mian js中全局引入element ui 2 配置路由router 3 按需导入我们需要的组件
  • 国务院关于积极推进“互联网+”行动的指导意见

    国务院关于积极推进 互联网 行动的指导意见 国发 2015 40号 各省 自治区 直辖市人民政府 国务院各部委 各直属机构 互联网 是把互联网的创新成果与经济社会各领域深度融合 推动技术进步 效率提升和组织变革 提升实体经济创新力和生产力
  • 第46讲:遇到动态页面怎么办?详解渲染页面爬取

    前面我们已经介绍了 Scrapy 的一些常见用法 包括服务端渲染页面的抓取和 API 的抓取 Scrapy 发起 Request 之后 返回的 Response 里面就包含了想要的结果 但是现在越来越多的网页都已经演变为 SPA 页面 其页
  • TVM(端到端深度学习编译器)简介

    TVM 出现背景 传统深度学习框架 对上图的补充说明 Graph IR 几层的Conv2d Relu Operators 比如矩阵乘法 TVM栈如下图 把Operators换成了Tensor Expr 生成代码后交给LLVM CUDA编译器
  • LogStash安装

    目录 1 下载安装报 2 上传到服务器 3 启动 Logstash 4 连接 Elasticsearch Elasticsearch安装与配置 Kibana安装与配置 LogStash安装 LogStash 简介 LogStash 日志采集
  • 互质、最长公共子序列(LCS)

    最长公共子序列 LCS 题目描述 给出 1 2 n 的两个排列P1和P2 求它们的最长公共子序列 输入格式 第一行是一个数 n 接下来两行 每行为 n 个数 为自然数1 2 n 的一个排列 输出格式 一个数 即最长公共子序列的长度 输入输出
  • 翻斗式雨雪量计的使用说明书

    概要 本装置为翻斗式温水式雨量计的感应部 口径200mm的接水口内的雨水每达到一定的量 0 2mm或0 5mm 则翻斗翻转 通过簧片开关检测出翻转动作 输出接点脉冲信号 接水器的外筒内封装的调配液 防冻液 水 保持在一定的温度 由此融化落在
  • python 爬虫的开发环境配置

    1 新建一个python项目 2 在控制台中分别安装下面三个包 pip install requests pip install beautifulsoup4 pip install selenium 如果安装时报以下错误 raise Re
  • RPM软件包编译

    文章目录 spec文件解析 关键字 rpm处理spec文件的几个阶段 变量判断 RPM软件包 制作RPM包 工作目录结构 RPMBUILD命令常用参数 RPM命令常用参数 其他命令 spec文件解析 关键字 Name 软件包的名称 在后面的
  • Cisco—HSRP下实现DHCP主备冗余

    实验 01 拓扑 02 实验要求 S1 S2通过DHCP 为下游的linux服务器 分配IP 地址 S1 S2 上配置HSRP 让S1 S2 动态充当linux服务器的网关 断开SW 连接S1 的接口 查看HSRP 是否能动态的切换 宕机S
  • 统计网站页面的访问量

    最近做的 食盐行业信用管理与公共服务系统 项目 需要做一个网站文章页面的访问量功能 自己的解决方案 可能很简陋 但是解决了问题 而且我也给出了详细的过程 请大家多多支持 参与谈论 博客写这么长不容易啊 嘿嘿 需求及规则如下 1 同一个ip地
  • java游戏主角叶开,《仙侠道》叶开深度解析

    仙侠道 叶开深度解析 成也叶开 败也叶开 高速的都想把叶开秒了 这样赢得几率大 但是对手也会想法设法让你秒不了 上叶开同等战力同样伙伴 低速度的占优势 低速阵印陷阱有两个回个 经脉有两个回合 燕无名魂刃给叶开套上 套上期间任何陷阱 增益 清
  • K8S 安装 Dashboard

    1 在 master 节点执行 本例 k8s 是 v1 17 2 对应的 dashboard 是 v2 0 0 rc5 这个版本 具体去这里查看对应的版本 Releases kubernetes dashboard GitHub wget
  • js算法设计思想之“贪心算法”

    贪心算法是算法设计中一种方法 期盼通过每个阶段的局部最优选择 从而达到全局的最优选择 结果不一定是最优的 leetcode 455 分饼干 解题思路 局部最优 技能满足孩子 还消耗最小 先将 较小的饼干 分给胃口最小的孩子 解题步骤 饼干数