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

水果成篮_优选算法(C++)滑动窗口

网页直达:

题目解析:

1.我们只能装2种类型的水果.并且我们要使装的水果数量最多,结果是最大数量的水果.

解法一:暴力解法+哈希表

暴力解法可以不写代码,但是要知道思路.

解法二:滑动窗口+哈希表

哈希表用于统计水果的数量和种类.

同样的,我们来画图了解其中的过程:

 

代码实现:

无解析:

class Solution {
public:int totalFruit(vector<int>& fruits) {unordered_map<int,int> hash;int n=fruits.size();int ret=0;for(int left=0,right=0;right<n;right++){hash[fruits[right]]++;while(hash.size()>2){hash[fruits[left]]--;if(hash[fruits[left]]==0)hash.erase(fruits[left]);left++;}ret=max(right-left+1,ret);}return ret;}
};

详解:

class Solution {
public:int totalFruit(vector<int>& fruits) {unordered_map<int,int> hash;//创建哈希表int n=fruits.size();int ret=0;for(int left=0,right=0;right<n;right++//右指针遍历,入窗口{hash[fruits[right]]++;//统计种类和数量while(hash.size()>2)//当种类大于2时不符合条件{hash[fruits[left]]--;//统计种类和数量if(hash[fruits[left]]==0)hash.erase(fruits[left]);left++;//出窗口}ret=max(right-left+1,ret);//上面的循环走完,就是种类为2的数量最多,更新结果}return ret;}
};

优化:

我们知道容器进行插入删除时需要时间的消耗.在题目中发现水果的种类是最大10^5,所以我们可以使用数组来模拟哈希表.kinds来记录水果种类.

代码实现:

详解:

class Solution {
public:int totalFruit(vector<int>& fruits) {int hash[100001]={0};//用数组模拟哈希表int kinds=0;//记录水果的种类int n=fruits.size();int ret=0;for(int right=0,left=0;right<n;right++)//右指针遍历,入窗口{if(hash[fruits[right]]==0)//统计种类{kinds++;}hash[fruits[right]]++;while(kinds>2){hash[fruits[left]]--;if(hash[fruits[left]]==0){kinds--;}left++;//出窗口}ret=max(ret,right-left+1);}return ret;}
};
http://www.dtcms.com/a/442939.html

相关文章:

  • dw网站建设字体颜色做超市dm的网站
  • 网站seo查询工具wordpress小工具页脚
  • PostIn入门到实战(7) - 如何快速调试websocket接口
  • 网站建设需求公司内部调查福田深圳网站建设
  • 如果自己建立网站做甲方去哪个网站应聘
  • 重要数据、长期存储 | 为什么要用机械硬盘?
  • 做木业网站怎样起名电商平台推广员是做什么的
  • 浙江省住房建设厅网站首页公司做网站的费属于广告费么
  • 卖汽车的网站怎么做网站一年费用多少钱
  • 不需要证件做网站找别人做网站注意事项
  • 建设岗位考试网站写网页用什么软件
  • 某个网站访问慢的原因兄弟们拿走不谢
  • 网站死链处理东莞人才网站
  • 西宁网站建设服务公司百度智能建站系统
  • 宜春建设网站网站后台问题
  • 2018做网站还是app全能搜
  • wap 网站模板教做香肠的网站
  • 上海浦东网站设计公司外贸网站建设可以吗
  • Metaora DAMM
  • 开发网站的意义网站建设浙江公司
  • 数据库集群技术
  • 建网站建设网站外贸公司英文网站建设
  • 网站开发工具推荐色流网站如何做
  • 做移动网站点击软件宠物网站 模板
  • 如何拿模板做网站教程
  • 硅胶模具技术支持东莞网站建设网站建设平台合同
  • 做网站维护要多少钱一年html网站建设实例教程
  • Rust中用ring实现RSA公私钥加解密
  • 网站建设公司出路跳转到手机网站代码
  • 虹口专业网站建设公司长沙百度首页优化