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

深圳网站建设公司哪家可以建app北京搜索引擎优化seo专员

深圳网站建设公司哪家可以建app,北京搜索引擎优化seo专员,怎么破解网站后台密码,wordpress如何卸载主题860.柠檬水找零 参考视频:贪心算法,看上去复杂,其实逻辑都是固定的!LeetCode:860.柠檬水找零_哔哩哔哩_bilibili 解题思路: 只需要维护三种金额的数量,5,10和20。 有如下三种情…

860.柠檬水找零

参考视频:贪心算法,看上去复杂,其实逻辑都是固定的!LeetCode:860.柠檬水找零_哔哩哔哩_bilibili 

解题思路:

只需要维护三种金额的数量,5,10和20。

有如下三种情况:

情况一:账单是5,直接收下。
情况二:账单是10,消耗一个5,增加一个10
情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个5
此时大家就发现 情况一,情况二,都是固定策略,都不用我们来做分析了,而唯一不确定的其实在情况三。

而情况三逻辑也不复杂甚至感觉纯模拟就可以了,其实情况三这里是有贪心的。

账单是20的情况,为什么要优先消耗一个10和一个5呢?

因为美元10只能给账单20找零,而美元5可以给账单10和账单20找零,美元5更万能!

所以局部最优:遇到账单20,优先消耗美元10,完成本次找零。全局最优:完成全部账单的找零。

局部最优可以推出全局最优,并找不出反例,那么就试试贪心算法!
 

public class Leetcode860 {public boolean lemonadeChange(int[] bills) {int five = 0;int ten = 0;for (int i = 0; i < bills.length; i++) {if (bills[i] == 5) {five++;} else if (bills[i] == 10) {if (five < 1) {return false;}five--;ten++;} else if (bills[i] == 20) {if (ten >= 1 && five >= 1) {ten--;five--;} else if (five >= 3) {five -= 3;} else {return false;}}}return true;}
}

406.根据身高重建队列

解题思路:

那么按照身高h来排序呢,身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。

此时我们可以确定一个维度了,就是身高,前面的节点一定都比本节点高!

那么只需要按照k为下标重新插入队列就可以了,为什么呢?

public class Leetcode406 {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, (a, b) -> {if (a[0] == b[0]) return a[1] - b[1];return b[0] - a[0];});LinkedList<int[]> que = new LinkedList<>();for (int[] p : people) {que.add(p[1], p);}return que.toArray(new int[people.length][]);}
}

452. 用最少数量的箭引爆气球

解题思路:

如何使用最少的弓箭呢?

直觉上来看,貌似只射重叠最多的气球,用的弓箭一定最少,那么有没有当前重叠了三个气球,我射两个,留下一个和后面的一起射这样弓箭用的更少的情况呢?

尝试一下举反例,发现没有这种情况。

那么就试一试贪心吧!局部最优:当气球出现重叠,一起射,所用弓箭最少。全局最优:把所有气球射爆所用弓箭最少。

算法确定下来了,那么如何模拟气球射爆的过程呢?是在数组中移除元素还是做标记呢?

如果真实的模拟射气球的过程,应该射一个,气球数组就remove一个元素,这样最直观,毕竟气球被射了。

但仔细思考一下就发现:如果把气球排序之后,从前到后遍历气球,被射过的气球仅仅跳过就行了,没有必要让气球数组remove气球,只要记录一下箭的数量就可以了。

以上为思考过程,已经确定下来使用贪心了,那么开始解题。

为了让气球尽可能的重叠,需要对数组进行排序。

那么按照气球起始位置排序,还是按照气球终止位置排序呢?

其实都可以!只不过对应的遍历顺序不同,我就按照气球的起始位置排序了。

既然按照起始位置排序,那么就从前向后遍历气球数组,靠左尽可能让气球重复。

从前向后遍历遇到重叠的气球了怎么办?

如果气球重叠了,重叠气球中右边边界的最小值 之前的区间一定需要一个弓箭。

以题目示例: [[10,16],[2,8],[1,6],[7,12]]为例,如图:(方便起见,已经排序)
 

public class Leetcode452 {public int findMinArrowShots(int[][] points) {Arrays.sort(points, (a, b) -> Integer.compare(a[0], b[0]));int res = 0;for (int i = 1; i < points.length; i++) {if (points[i][0] > points[i - 1][1]) {res++;}if (points[i][0] <= points[i - 1][1]) {points[i][1] = Math.min(points[i - 1][1], points[i][1]);}}return res;}
}

http://www.hrbkazy.com/news/35110.html

相关文章:

  • 做个营销型网站多少钱赣州seo顾问
  • 网站权重优化常州网站建设书生商友
  • 北京中高端网站建设营销网站建设服务
  • 网站建设好如何开通保定seo外包服务商
  • 企业优化方案杭州seo俱乐部
  • 慈溪怎么做网站安新seo优化排名网站
  • 生鲜b2c网站建设规划书如何做网站建设
  • 织梦网站怎么做404页面想要网站导航正式推广
  • 教育类网站框架软件外包公司是什么意思
  • 想把自己做的网站放到网上网络优化基础知识
  • 吉林科技网站建设网络市场营销策划书
  • 外贸网站如何做的好b站在线观看人数在哪
  • 适合设计师看的设计网站山东进一步优化
  • 浙江省电子商务网站建设北京互联网营销公司
  • wordpress建政府网站百度搜索引擎营销如何实现
  • 中国建设信息化官网seo实战视频
  • 怎么样查询建设网站东莞外贸优化公司
  • 做面包的网站ps培训
  • 北京做微信网站市场营销策略有哪些
  • 网站建设图片上传操作珠海seo快速排名
  • 做公司网站需要会什么科目网络营销的主要特点有哪些
  • 营销型网站的建设企业邮箱域名
  • 泽州县住房保障和城乡建设局网站外贸网站设计
  • 网站建设企业 熊掌号智能建站网站模板
  • 网站开发与管理大作业高级seo招聘
  • 做网站用哪个ecalipsecms建站系统
  • 西安搜索引擎营销推广公司西安网络推广seo0515
  • 上海免费推广网站有哪些电脑培训班多少费用
  • 男朋友是做网站的赚钱不中国企业网络营销现状
  • 可以做外链的图片网站java成品网站