一个月速刷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]

}

}

}
相关推荐
中微子1 分钟前
RESTful架构与前后端路由演进:构建现代化Web应用的核心规范
前端
前端付豪2 分钟前
13、表格系统架构:列配置、嵌套数据、复杂交互
前端·javascript·架构
南屿im7 分钟前
发布订阅模式和观察者模式傻傻分不清?一文搞懂两大设计模式
前端·javascript
I_have_a_lemon8 分钟前
前端、产品、设计师神器推荐——Onlook
前端·cursor
前端小巷子9 分钟前
深入解析CSRF攻击
前端·安全·面试
JustHappy10 分钟前
SPA?MPA?有啥关系?有啥区别?聊一聊页面形态 or 路由模式
前端·javascript·架构
每天开心10 分钟前
🧙‍♂️闭包应用场景之--防抖和节流
前端·javascript·面试
hxmmm15 分钟前
webpack多入口打包文件
前端
CAD老兵16 分钟前
前端组件库的多主题实现原理与实战指南
前端
归于尽18 分钟前
Generator?从 yield 卡壳,到终于搞懂协程那点事
前端·javascript