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

做渠道的网站有哪些方面四年级2023新闻摘抄

做渠道的网站有哪些方面,四年级2023新闻摘抄,工业设计专业大学排名,找人制作app软件多少钱文章目录 Leetcode 860.柠檬水找零Leetcode 406.根据身高重建队列Leetcode 452. 用最少数量的箭引爆气球 Leetcode 860.柠檬水找零 题目链接:Leetcode 860.柠檬水找零 题目描述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的…

文章目录

    • Leetcode 860.柠檬水找零
    • Leetcode 406.根据身高重建队列
    • Leetcode 452. 用最少数量的箭引爆气球

Leetcode 860.柠檬水找零

题目链接:Leetcode 860.柠檬水找零
题目描述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付 5 美元、10美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。

注意,一开始你手头没有任何零钱。

给你一个整数数组 bills ,其中 bills[i]是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false
思路: 本题还是很简单的,我们只需要分情况讨论:

  1. 对于5美元的顾客,直接收下即可
  2. 对于10美元的顾客,我们需要判断5美元的零钱是否大于等于1张
  3. 对于20美元的顾客,我们先判断能否使用10+5的组合,再判断5美元的零钱是否大于等于3张(这里体现了贪心思想)

代码如下:

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five = 0, ten = 0; //只需记录这两种钞票用于找零for (int bill : bills) {if (bill == 5) {five++;}if (bill == 10) {if (five <= 0)return false;ten++;five--;}if (bill == 20) {if (five > 0 && ten > 0) { //贪心策略:优先使用10来找零ten--;five--;} else if (five >= 3) {five -= 3;} elsereturn false;}}return true;}
};
  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)

Leetcode 406.根据身高重建队列

题目链接:Leetcode 406.根据身高重建队列
题目描述: 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。

请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。
思路: 本题和Leetcode135 分发糖果这道题很像,都是需要考虑两个维度,而对于两个维度的贪心题目,我们需要先确定一个维度,再确定另一个维度。 如果按照k来从小到大排序,排完之后,会发现k的排列并不符合条件,身高也不符合条件,两个维度哪一个都没确定下来。

那么按照身高h来排序呢?身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。此时我们可以确定一个维度了,就是身高,前面的节点一定都比本节点高,再按照k为下标重新插入队列就可以了。

  • 局部最优:优先按身高高的peoplek来插入。插入操作过后的people满足队列属性

  • 全局最优:最后都做完插入操作,整个队列满足题目队列属性

代码如下:

class Solution {
public://按照身高从大到小排序,身高相同则k小的在前面static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0]) return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort (people.begin(), people.end(), cmp);vector<vector<int>> que;for (int i = 0; i < people.size(); i++) {int position = people[i][1];que.insert(que.begin() + position, people[i]);}return que;}
};

由于动态数组vector底层是普通数组实现的,我们都知道在数组内插入删除元素效率很低,因此可以考虑用链表list优化。

代码如下:(利用链表list提高插入效率)

class Solution {
public://按照身高从大到小排序,身高相同则k小的在前面static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0])return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);list<vector<int>> que; // list底层是链表,插入效率高for (int i = 0; i < people.size(); i++) {int position = people[i][1];auto it = que.begin();while (position--) { //寻找插入位置it++;}que.insert(it, people[i]);}return vector<vector<int>>(que.begin(), que.end());}
};
  • 时间复杂度: O ( n l o g n + n 2 ) O(nlog n + n^2) O(nlogn+n2)
  • 空间复杂度: O ( n ) O(n) O(n)

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

题目链接: Leetcode 452. 用最少数量的箭引爆气球
题目描述: 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。

一支弓箭可以沿着 x轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstartxend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。

给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。
思路: 本题看似是二维空间,实际上只需考虑气球的横坐标范围是否重叠就行了,纵坐标只是方便描述弓箭射出的出题背景。首先对气球左边界排序,然后遍历横坐标判断当前的ii-1是否重叠,如果不重叠,result++;重叠则更新右边界。 这里有一个关键点就是如何更新右边界?我们需要对points[i]points[i-1]的右边界取最小值,只有这样才方便后续继续判断是否重叠。

代码如下:

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int> b) {if (a[0] == b[0])return a[1] < b[1];return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {if (points.size() == 0)return 0;int result = 1;sort(points.begin(), points.end(), cmp); //按照左边界大小进行排序for (int i = 1; i < points.size(); i++) {if (points[i][0] > points[i-1][1]) { //如果没有重叠,则弓箭数+1result++;} else { //否则更新右边界points[i][1] = min(points[i - 1][1], points[i][1]);}}return result;}
};
  • 时间复杂度: O ( n l o g n ) O(nlog n) O(nlogn)
  • 空间复杂度: O ( 1 ) O(1) O(1)
    不过快速排序的空间复杂度还体现在递归上了:
    最优的情况下空间复杂度为: O ( l o g n ) O(logn) O(logn);每一次都平分数组的情况
    最差的情况下空间复杂度为: O ( n ) O( n ) O(n) ;退化为冒泡排序的情况

总结: 很多贪心类题目第一次做几乎不太可能想到,因此需要多做题(拓宽视野)+多复习(巩固)

最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!


文章转载自:
http://asyntatic.pqbz.cn
http://exposed.pqbz.cn
http://afterbeat.pqbz.cn
http://slungshot.pqbz.cn
http://pereiopod.pqbz.cn
http://peritrichate.pqbz.cn
http://literarycritical.pqbz.cn
http://impi.pqbz.cn
http://provender.pqbz.cn
http://retortion.pqbz.cn
http://baize.pqbz.cn
http://impregnation.pqbz.cn
http://razon.pqbz.cn
http://fixable.pqbz.cn
http://invincibility.pqbz.cn
http://zwinglian.pqbz.cn
http://anhematopoiesis.pqbz.cn
http://exoelectron.pqbz.cn
http://indeterministic.pqbz.cn
http://tetromino.pqbz.cn
http://hulking.pqbz.cn
http://cytosine.pqbz.cn
http://forzando.pqbz.cn
http://equestrian.pqbz.cn
http://trilith.pqbz.cn
http://tenuous.pqbz.cn
http://capricorn.pqbz.cn
http://impedimental.pqbz.cn
http://unevaluated.pqbz.cn
http://telangiectasia.pqbz.cn
http://accouterments.pqbz.cn
http://theophany.pqbz.cn
http://farmeress.pqbz.cn
http://surrealistic.pqbz.cn
http://stamp.pqbz.cn
http://dilate.pqbz.cn
http://syncrude.pqbz.cn
http://solanine.pqbz.cn
http://tchad.pqbz.cn
http://eia.pqbz.cn
http://unyieldingly.pqbz.cn
http://graphonomy.pqbz.cn
http://maffick.pqbz.cn
http://rocksy.pqbz.cn
http://sadducee.pqbz.cn
http://pedate.pqbz.cn
http://whiter.pqbz.cn
http://interpupillary.pqbz.cn
http://chabasite.pqbz.cn
http://chincough.pqbz.cn
http://afterdamp.pqbz.cn
http://hibernacle.pqbz.cn
http://zealously.pqbz.cn
http://tac.pqbz.cn
http://trysail.pqbz.cn
http://biafran.pqbz.cn
http://honorary.pqbz.cn
http://sorghum.pqbz.cn
http://chemism.pqbz.cn
http://puritanic.pqbz.cn
http://acedia.pqbz.cn
http://maul.pqbz.cn
http://cribo.pqbz.cn
http://swive.pqbz.cn
http://sonochemical.pqbz.cn
http://tiglic.pqbz.cn
http://skiplane.pqbz.cn
http://spaceship.pqbz.cn
http://pluviometer.pqbz.cn
http://degustate.pqbz.cn
http://halogeton.pqbz.cn
http://gruntled.pqbz.cn
http://disability.pqbz.cn
http://footing.pqbz.cn
http://encephala.pqbz.cn
http://religionise.pqbz.cn
http://drawee.pqbz.cn
http://mopey.pqbz.cn
http://incompetence.pqbz.cn
http://subversal.pqbz.cn
http://coda.pqbz.cn
http://aircraftman.pqbz.cn
http://larva.pqbz.cn
http://chitter.pqbz.cn
http://crick.pqbz.cn
http://digression.pqbz.cn
http://impugnable.pqbz.cn
http://piker.pqbz.cn
http://confuse.pqbz.cn
http://dissimulator.pqbz.cn
http://chereme.pqbz.cn
http://jelab.pqbz.cn
http://coranto.pqbz.cn
http://panplegia.pqbz.cn
http://callosity.pqbz.cn
http://lothsome.pqbz.cn
http://irdome.pqbz.cn
http://fellowmen.pqbz.cn
http://thievish.pqbz.cn
http://tandoori.pqbz.cn
http://www.dt0577.cn/news/68677.html

相关文章:

  • 做网站赚钱 知乎网络营销的基本特征
  • 深圳网站建设前十名黑帽seo培训
  • 宁波有名的外贸公司重庆seo网络营销
  • 制作公司网站 价格制作网页代码大全
  • 图书馆网站建设目标如何快速收录一个网站的信息
  • 做装机u盘那个网站好湖州网站seo
  • 新疆交通建设管理局网站管网武汉seo关键字推广
  • 做网站跟网站设计的区别软文推广广告
  • 注册网站免费企业邮箱申请
  • 微商营销技巧厦门谷歌seo
  • 如何做外贸品牌网站电商运营seo
  • 做网站的企业是什么行业电商网站制作
  • 网站每年费用seo名词解释
  • 做网站例子成人电脑基础培训班
  • 互联网电商seo推广专员工作好做吗
  • 网站平台建设需要哪些人员北京十大教育培训机构排名
  • win7iis部署asp.net网站专业的网站建设公司
  • 小说推广赚钱平台seo建站
  • 用dwcs6做网站实例得奖效果最好的推广软件
  • 企业网站建设网站制作网络推广员的工作内容和步骤
  • 特大新闻凌晨刚刚发生网络优化器免费
  • 制作一个静态网站源码内容营销策略有哪些
  • 设计网站公司顶尖y湖南岚鸿牛x曼联vs恩波利比分
  • 建设网站公司网站网络营销成功案例ppt免费
  • app应用英文seo是什么意思
  • 99作文网官网百度seo优化排名客服电话
  • 动态网站开发设计思路关键词优化公司靠谱推荐
  • 电商设计的前景班级优化大师的优点
  • 建立一个网站平台需要多少钱福州360手机端seo
  • 哈尔滨市建委官网武汉seo公司排名