最长和谐子序列,滑动窗口

最长和谐子序列

arduino 复制代码
//最长和谐子序列

// 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。
// 给你一个整数数组 nums ,请你在所有可能的 子序列 中找到最长的和谐子序列的长度。
// 数组的 子序列 是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。

// 输入:nums = [1,3,2,2,5,2,3,7]
// 输出:5
// 解释:
// 最长和谐子序列是 [3,2,2,2,3]。

var findLHS=function (nums){
    nums.sort((a,b)=>a-b);// 排序
    let begin=0;//头指针
    let res=0;//结果
    for(let end=0;end<nums.length;end++){//尾指针
        while (nums[end]-nums[begin]>1){//滑动窗口寻找头指针位置
            begin++;
        }
        if(nums[end]-nums[begin]===1){//判断头尾节点相差一的结果
            res=Math.max(res,end-begin+1);
        }
    }
    return res;
}
相关推荐
PAK向日葵6 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
灵感__idea6 小时前
JavaScript高级程序设计(第5版):好的编程就是掌控感
前端·javascript·程序员
烛阴7 小时前
Mix
前端·webgl
代码续发7 小时前
前端组件梳理
前端
试图让你心动8 小时前
原生input添加删除图标类似vue里面移入显示删除[jquery]
前端·vue.js·jquery
陈不知代码8 小时前
uniapp创建vue3+ts+pinia+sass项目
前端·uni-app·sass
小王码农记8 小时前
sass中@mixin与 @include
前端·sass
陈琦鹏8 小时前
轻松管理 WebSocket 连接!easy-websocket-client
前端·vue.js·websocket
hui函数9 小时前
掌握JavaScript函数封装与作用域
前端·javascript
行板Andante9 小时前
前端设计中如何在鼠标悬浮时同步修改块内样式
前端