一个月速刷leetcodeHOT100 day03

最长连续序列

js 复制代码
// 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

// 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

  

// 示例 1:

  

// 输入:nums = [100,4,200,1,3,2]

// 输出:4

// 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

// 示例 2:

  

// 输入:nums = [0,3,7,2,5,8,4,6,0,1]

// 输出:9


// var longestConsecutive = function (nums) {

// if(nums.length === 0){

// return 0;

// }

// nums.sort((a, b) => a - b);

// let maxL = 1, curL = 1, curN = nums[0];

// for (let i = 1; i < nums.length; i++) {

// if (nums[i] === curN) {

// continue;

// }

// if (nums[i] - curN === 1) {

// curL++;

// } else {

// maxL = Math.max(maxL, curL);

// curL = 1;

// }

// curN = nums[i];

// }

// return Math.max(maxL, curL);

// };

  

let fn = function(nums){

if(nums.length === 0){

return 0

}

nums.sort((a,b)=>a-b)

let curN=nums[0]

let curL = 1;

for(let i =1;i<nums.length;i++){

if(nums[i] === curN){

continue

}

if(nums[i] - curN === 1){

curL++

}else{

maxL = Math.max(maxL, curL); // 更新最长连续序列的长度

curL = 1; // 重置当前连续序列的长度

}

curN = nums[i]

}

return maxL > curL ? maxL : curL

}

287. 寻找重复数

复制代码
// 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

  

// 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。

  

// 你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

// 示例 1:

  

// 输入:nums = [1,3,4,2,2]

// 输出:2

// 示例 2:

  

// 输入:nums = [3,1,3,4,2]

// 输出:3

// 示例 3 :

// 输入:nums = [3,3,3,3,3]

// 输出:3

  

//用JS中的查找方法就行

var findDuplicate = function(nums){

for (let i = 0;i<nums.length;i++) {

if (nums.indexOf(nums[i]) !== i) {

return nums[i]

}

}

}
相关推荐
许小燚33 分钟前
线性表——双向链表
数据结构·链表
RadiumAg38 分钟前
记一道有趣的面试题
前端·javascript
yangzhi_emo42 分钟前
ES6笔记2
开发语言·前端·javascript
yanlele1 小时前
我用爬虫抓取了 25 年 5 月掘金热门面试文章
前端·javascript·面试
董董灿是个攻城狮1 小时前
5分钟搞懂什么是窗口注意力?
算法
Dann Hiroaki1 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
中微子2 小时前
React状态管理最佳实践
前端
烛阴2 小时前
void 0 的奥秘:解锁 JavaScript 中 undefined 的正确打开方式
前端·javascript
中微子2 小时前
JavaScript 事件与 React 合成事件完全指南:从入门到精通
前端
Hexene...3 小时前
【前端Vue】如何实现echarts图表根据父元素宽度自适应大小
前端·vue.js·echarts