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

舟山网站开发响应式购物网站设计

舟山网站开发,响应式购物网站设计,石家庄建设集团,芜湖哪些公司做公司网站题目1#xff1a;860 柠檬水找零 题目链接#xff1a;860 柠檬水找零 题意 一杯柠檬水5美元#xff0c;每位顾客只买一杯柠檬水#xff0c;支付5美玉#xff0c;10美元#xff0c;20美元#xff0c;必须正确找零 开始时并没有零钱 若可以正确找零#xff0c;则返回…题目1860 柠檬水找零 题目链接860 柠檬水找零 题意 一杯柠檬水5美元每位顾客只买一杯柠檬水支付5美玉10美元20美元必须正确找零 开始时并没有零钱 若可以正确找零则返回true反之返回false 贪心策略 尽可能保留5美元的零钱5更万能既能对10找零又能对20找零 优先使用10进行找零 代码 class Solution { public:bool lemonadeChange(vectorint bills) {if(bills[0]!5) return false;int nums5 0;int nums10 0;int nums20 0;for(int i0;ibills.size();i){if(bills[i]5) nums5 5;if(bills[i]10){if(nums5!0){nums5 - 5;nums10 10;}else return false;}if(bills[i]20){if(nums10!0 nums5!0){nums10 - 10;nums5 - 5;}else if(nums515){nums5 - 15;}else return false;}}return true;} }; 时间复杂度: O(n)空间复杂度: O(1) 题目2406 根据身高重建队列 题目链接406 根据身高重建队列 题意 people[i][hiki]   表示第i个人的身高是hi前面有ki个身高大于等于hi的人按正确顺序重组队列 贪心策略 先确定一个维度先比较h的维度按照h从大到小排序然后再比较k的维度 按照k从小到大往前插入 数组 代码 class Solution { public:static bool cmp(vectorint a,vectorint b){if(a[0]b[0]) return a[1]b[1];//升序排序return a[0]b[0];//降序排序}vectorvectorint reconstructQueue(vectorvectorint people) {vectorvectorint queue;//身高按照降序排序从大到小排序sort(people.begin(),people.end(),cmp);//根据k插入到队列前面 注意是插入到队列哦不是peoplefor(int i0;ipeople.size();i) queue.insert(queue.begin()people[i][1],people[i]);return queue;} }; 时间复杂度O(nlog n n^2)空间复杂度O(n) 注意 使用vector是非常费时的C中vector可以理解是一个动态数组底层是普通数组实现的如果插入元素大于预先普通数组大小vector底部会有一个扩容的操作即申请两倍于原先普通数组的大小然后把数据拷贝到另一个更大的数组上。 所以使用vector动态数组来insert是费时的插入再拷贝的话单纯一个插入的操作就是O(n^2)了甚至可能拷贝好几次就不止O(n^2)了。 链表 class Solution { public:static bool cmp(vectorint a,vectorint b){if(a[0]b[0]) return a[1]b[1];//升序排序return a[0]b[0];//降序排序}vectorvectorint reconstructQueue(vectorvectorint people) {listvectorint que;//身高按照降序排序从大到小排序sort(people.begin(),people.end(),cmp);//根据k插入到队列前面 注意是插入到队列哦不是peoplefor(int i0;ipeople.size();i){int position people[i][1];std::listvectorint::iterator itque.begin();while(position--){it;}que.insert(it,people[i]);}return vectorvectorint(que.begin(),que.end());} }; 时间复杂度O(nlog n n^2)空间复杂度O(n) 题目3452 用最少数量的箭引爆气球 题目链接452 用最少数量的箭引爆气球 题意 points[i][xstartxend]表示水平直径在xstart和xend之间的气球y坐标未知 一支箭可以从垂直x轴的任意位置x处射出一直前进若xstartxxend气球会被引爆求最小弓箭数 贪心策略 重叠区间的气球用1个箭射中箭的数量最少 代码 class Solution { public:static bool cmp(vectorint a, vectorint b){//左边界升序return a[0]b[0];}int findMinArrowShots(vectorvectorint points) {//对数组的左边界升序排序sort(points.begin(),points.end(),cmp);//收集弓箭数int result 1;for(int i1;ipoints.size();i){//两气球不重叠if(points[i][0]points[i-1][1]) result;//两气球重叠else{//判断第三个气球更新右边界points[i][1] min(points[i][1],points[i-1][1]);}}return result;} }; 时间复杂度O(nlog n)因为有一个快排空间复杂度O(1)有一个快排最差情况(倒序)时需要n次递归调用。因此确实需要O(n)的栈空间
http://www.pierceye.com/news/216645/

相关文章:

  • 卡盟网站建设公司品牌策划ppt
  • 自己如何做网站教程广州建网站有哪些
  • 网站建设 市场规模加强财政门户网站建设工作
  • wordpress 搭建多站点电子商务网站
  • 免费制作网页的网站万网租空间 网站
  • 上海 网站 备案ios开发网站app
  • 网站建设,h5,小程序众安保险
  • 大连网站建设资讯网站seo如何优化
  • 手表网站建设策划西地那非片怎么服用最佳
  • 常德网站设计英文版网站怎么做
  • 权威网站建设网站的工具
  • php手机网站模板厦门网站设计建设
  • 焦作集团网站建设做食品网站需要什么资质
  • 西北电力建设甘肃工程公司网站90设计电商模板
  • 内蒙古网站设计推广网站注册赚佣金
  • 医药类网站建设评价wordpress微信支付模板
  • 如何查看网站空间商手机服务器下载安装
  • 北京响应式网站建设报价英文版网站案例
  • 做爰全过程免费的视频99网站做h5单页的网站
  • 怎么才能百度做网站海外直播
  • 响应式企业网站开发所用的平台酷炫网站首页
  • 西安网站建设全包大发 wordpress
  • html5 网站开发定制做公司网站好处
  • 建站网站教程网站建设工程师职责说明书
  • 新云网站模版宠物网站开发
  • 网站建设面授班网站备案回访电话号码
  • 阿里有做网站网站建设费是宣传费用吗
  • 点广告挣钱网站有哪些网站的建设与预算
  • 佛山新网站建设详细内容手机软件公司
  • 网站建设美词原创怎样建设一个能上传数据的网站