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

手机网站竞价单页郑州高端网站建设

手机网站竞价单页,郑州高端网站建设,宣讲家网站两学一做心得,网站做更改后台怎么做题目 904. 水果成篮 - 力扣(LeetCode) 思路 题目本质 你有一个整数数组,每个元素代表一种水果。你只能用两个篮子,每个篮子只能装一种水果。你要在数组中找一个最长的连续子数组,这个子数组里最多只包含两种不同的…

题目

904. 水果成篮 - 力扣(LeetCode)

思路

题目本质

你有一个整数数组,每个元素代表一种水果。你只能用两个篮子,每个篮子只能装一种水果。你要在数组中找一个最长的连续子数组,这个子数组里最多只包含两种不同的数字(水果种类)。

解题思路(滑动窗口法)

滑动窗口:

用两个指针(left和right)表示当前连续子数组的左右边界。right每次向右扩展,left根据需要向右收缩。

统计水果种类:

用一个哈希表(如unordered_map)记录当前窗口内每种水果的数量。

窗口合法性:

  • 如果窗口内水果种类不超过2种,窗口合法,更新最大长度。
  • 如果超过2种,移动left指针,直到窗口内只剩下2种水果。

更新答案:

每次窗口合法时,更新最大长度。

过程

以 [1,2,1,2,3] 为例:

  • 初始窗口 [1],种类1种。
  • 扩展到 [1,2],种类2种。
  • 扩展到 [1,2,1],种类2种。
  • 扩展到 [1,2,1,2],种类2种。
  • 扩展到 [1,2,1,2,3],种类3种,不合法。此时需要移动left,直到只剩2种水果。

读者可能出现的错误写法

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

代码主要问题在于:

当sum.size() > 2时,你只减少了sum[fruits[left]]--,但是没有移动left指针,

也没有在sum[fruits[left]]为0时将其从map中删除。这样会导致死循环或统计错误。

正确写法

class Solution {
public:int totalFruit(vector<int>& fruits) {int left = 0, right = 0, ret = 0;unordered_map<int, int> sum;while (right < fruits.size()) {sum[fruits[right]]++;while (sum.size() > 2) {sum[fruits[left]]--;if (sum[fruits[left]] == 0) {sum.erase(fruits[left]);}left++;}ret = max(ret, right - left + 1);right++;}return ret;}
};
http://www.dtcms.com/wzjs/7820.html

相关文章:

  • 网站注册qq如何推广公司
  • 网站开发设计的难点网络seo优化
  • 东莞建设银行客服电话深圳seo推广培训
  • 校园网站怎么做免费做网站的平台
  • 不用写代码做网站网络营销招聘岗位有哪些
  • 设计的比较好的网站app推广代理去哪里找
  • 广州自适应网站建设必应搜索引擎怎么样
  • 关于加强政府网站建设和管理工作的意见北京seo设计公司
  • 做论坛网站的应用淮北seo排名
  • 2019年 dede网站网络营销怎么推广
  • 做盗链电影网站怎么样全网关键词云怎么查
  • 响应式网站代码规范广告推广赚钱在哪接
  • 专门做油站数据的网站企业微信营销管理软件
  • 刚创业 建网站培训机构排名前十
  • 网络广告营销对应案例电脑优化是什么意思
  • 推荐西安优秀的响应式网站建设公司大数据分析培训机构
  • 鄂尔多斯市建设厅官方网站郑州seo优化顾问热狗
  • 杭州如何设计网站首页卖友情链接赚钱
  • 哪个网站做正品女装seo优化的技巧
  • html怎么弄浙江seo博客
  • 怎么把asp网站做的好看cnzz站长统计工具
  • 信誉比较好的商家可做网站友情链接
  • 中国做网站正邦论坛平台
  • 影视网站建设南京seo网站优化推广
  • 网站开发人员职责seo外包大型公司
  • 网站建设内容规划淘宝关键词排名优化
  • 给菠菜网站做外包有哪些推广平台和渠道
  • 免费建立国外网站关键词工具
  • 专做视频素材的网站如何提高seo关键词排名
  • 移动互联网开发报告总结湖州网站seo