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

哪个网站美丽乡村做的比较好最新网站源码

哪个网站美丽乡村做的比较好,最新网站源码,顺德手机网站设计咨询,sql网站源码目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题2.4 代码复盘 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 滑动窗口 2.2 代码尝试 class Solution { public:int longestSubarray(vector<int>& nums, int limit) {int cou…

目录

  • 一、题目
  • 二、思路
    • 2.1 解题思路
    • 2.2 代码尝试
    • 2.3 疑难问题
    • 2.4 代码复盘
  • 三、解法
  • 四、收获
    • 4.1 心得
    • 4.2 举一反三

一、题目

在这里插入图片描述

二、思路

2.1 解题思路

滑动窗口

2.2 代码尝试

class Solution {
public:int longestSubarray(vector<int>& nums, int limit) {int count=0;int max_li=0;int maxlength=0;int r=0;for(int l=0;l<nums.size();l++){//当左边界固定时,不断往右扩展max_li=0;//置零if(r==nums.size()-1){return maxlength;}//窗口先一直滑动到满足条件的边界while(r<nums.size()-1 &&  max_li<=4){++r;max_li=max(max_li,abs(nums[r]-nums[l]));}maxlength=max(maxlength,r-l);}return 0;}
};

感觉对滑动窗口本质还是有点不理解,往哪里滑动然后while就应该怎么写

2.3 疑难问题

2.4 代码复盘

你在代码中使用 max_li 来记录当前窗口内的最大差值,但你在每次左边界移动时都将 max_li 重置为 0。这会导致你在计算窗口内的差值时丢失之前的信息。确实,这个置零有点笨重了。
你的算法时间复杂度较高。每次左边界移动时,右边界都从当前位置重新开始扩展,这会导致时间复杂度为 O(n^2)。你可以使用滑动窗口结合单调队列来优化时间复杂度到 O(n)。

三、解法

class Solution {
public:int longestSubarray(vector<int>& nums, int limit) {multiset<int> s;int n = nums.size();int left = 0, right = 0;int ret = 0;while (right < n) {s.insert(nums[right]);while (*s.rbegin() - *s.begin() > limit) {s.erase(s.find(nums[left++]));}ret = max(ret, right - left + 1);right++;}return ret;}
};作者:力扣官方题解
链接:https://leetcode.cn/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/solutions/612688/jue-dui-chai-bu-chao-guo-xian-zhi-de-zui-5bki/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

四、收获

4.1 心得

红黑树能存最大最小值。能够快速找到最大值和最小值。感觉被上一道变体题目给搞乱了,这题也是个模板,但就是做不出来了。

4.2 举一反三

不定长滑动窗口的模板

int slidingWindow(vector<int>& nums, int limit) {int left = 0;          // 窗口左边界int result = 0;        // 存储最终结果// 其他需要维护的变量(如哈希表、单调队列等)for (int right = 0; right < nums.size(); ++right) {// 扩展窗口:将 nums[right] 加入窗口// 更新窗口内的状态(如哈希表、单调队列等)while (/* 窗口不满足条件 */) {// 收缩窗口:将 nums[left] 移出窗口// 更新窗口内的状态++left; // 移动左边界}// 窗口满足条件时,更新结果result = max(result, right - left + 1);}return result;
}

在滑动窗口算法中,while (/* 窗口不满足条件 */) 的作用是 收缩窗口,以确保窗口内的元素始终满足题目要求的条件。这是滑动窗口算法的核心逻辑之一。
使用 while 可以确保窗口内的元素始终满足条件,从而保证结果的正确性。

http://www.yayakq.cn/news/36303/

相关文章:

  • html网站完整代码vs2010网站开发示例
  • 网站的总体方案与功能设计建行移动门户官网
  • 广东创粤建设有限公司网站怎么看网站pr值
  • 山东网站app制作青岛定制网站建设
  • 商城网站开发视频网站怎么做图片动态图片不显示
  • 浦江网站建设大学院系网站建设
  • 建设网站怎么收费标准大型游戏平台排行榜
  • php 企业网站cms用dw制作个人网页
  • 云南效果好的网站优化充值网站怎么做的
  • 麻阳住房和城乡建设局网站58同城如何发布网站建设
  • 网站前端建设如何把做好的网站代码变成网页
  • 网站建设的ci设计指的是什么大气的公司简介文案
  • 建设银行信用卡管理中心网站摄影网站制作
  • 做视频解析网站违法不江西房地产网站建设
  • 为什么招聘网站做不大湖南营销类网站设计
  • 去哪找做塑料的网站直通车怎么开才有效果
  • 宁波海曙网站开发公司洛阳网站推广公司
  • 网站建设mfdos 优帮云wordpress 登录空白页
  • 视频网站logo怎么做的免费模板网站知乎
  • 大连做网站哪家好建设营销型网站不足之处
  • html5韩国网站模板移动开发技术
  • 建网站权威机构nginx建设网站教程
  • 做网站的咋挣钱佘山做网站公司
  • 班级设计网站建设无锡网站建设策划方案
  • 国外网站国内做好还是国外做孝感网站开发找优搏
  • 免费做网站收录的网站建设账务处理
  • 网站建设 400电话 广告语分类达人介绍
  • 晋中住房保障和城乡建设局网站wordpress数据维护
  • 网站建设宁夏凤凰云平面设计培训班要学多久
  • 360怎么免费建网站外国风格网站建设用途