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

微信导航网站 dedecms怎样建立个人网络平台

微信导航网站 dedecms,怎样建立个人网络平台,临海企业网站设计,江桥网站建设目录 一、题目二、思路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/243439/

相关文章:

  • 怀仁网站建设网站中全景是怎么做的
  • 手机单页网站模板门店管理系统软件排行
  • 网站给篡改了要怎么做开发大型网站
  • 怎么查看网站空间大小企业网站营销如何建设
  • 滨州五学一做考试网站企业官网设计
  • 找人做网站需要什么条件开源cms建站
  • 网站建设需求背景阿里云做网站开发吗
  • 哪个网站可以做全网推广wordpress 新打开空白页
  • 专门卖医疗器械的网站微信开发者工具打不开
  • 如何建外贸网站成都手机wap网站制作
  • 做一个购物网站需要多久建材在哪里做网站好
  • 电子工程设计网站如何建立企业网站及企业网站推广
  • 资阳做网站贸易公司网站建设方案
  • 自动建站网站源码标书制作员有前途吗
  • 免费企业网站cms建设网站后如何做后台
  • 网站开发与维护课程设计网站建设功能报价表
  • 网站建设中端口号的作用是什么广州市住房城乡建设部门户网站
  • 彩票网站搭建多钱学校网页设计方案
  • 我国网站无障碍建设仍处于wordpress网站建设中
  • 网站建设 会议主持稿自动推广软件下载
  • 百度官方免费下载安装上海网站建设乐云seo
  • 怎么用链接进自己做的网站吗网站推广一站式服务
  • 玉溪网站建设现状网站优化知识
  • 专业网站建设制作h5 建站网站 移动端
  • 资阳市建设局网站在线做头像
  • 成都网站平台建设给公司做网站风险
  • 无网站如何做淘宝客网站被降权怎么恢复
  • 怎样建网站 步骤图片设计制作软件
  • 手机网站制作代理五合一网站做优化好用吗
  • 网站建设用哪种语言好wordpress新浪的图床