博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode--442. 数组中重复的数据(JS版)
阅读量:6808 次
发布时间:2019-06-26

本文共 678 字,大约阅读时间需要 2 分钟。

先来看看题目:

给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。

找到所有出现两次的元素

你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?

示例:

输入: [4,3,2,7,8,2,3,1]

输出: [2,3]

其实这个题目最大的难处在于不使用任何的额外空间。如果没有这个限制的话,我们可以通过遍历数组然后通过常规的去重算法就可以得出结果了。但是有多了这个限制以后我们应该如何去解答呢?

这是我的思路,先给数组进行排序。使到数组里面相同的元素必定会紧挨着排列,接下来我们只需要遍历数组筛选出nums[i] === nums[i+1]的数据即可。下面是源码:

/** * @param {number[]} nums * @return {number[]} */var findDuplicates = function(nums) {    if(!nums || nums.length < 1){
return [];} nums.sort((a,b)=>{ return a-b; }) nums = nums.filter((item,index)=>{ return nums[index] == nums[index+1]; }) return nums;};复制代码

欢迎大家共同探讨!!

转载于:https://juejin.im/post/5c121c27f265da61141c7931

你可能感兴趣的文章
深入BUG分析
查看>>
销售灵魂人物的潜伏笔记5
查看>>
SQL代码自动生成器
查看>>
向左还是往右?Chris Dixon谈何时放弃你的idea
查看>>
OC 计算幂集 - 递归法
查看>>
xstream使用的第二个小问题
查看>>
只会编程的程序员没有前途
查看>>
Litespeed如何安装phpmyadmin/pureftpd
查看>>
四层和七层负载均衡的区别
查看>>
Nginx+Tomcat关于Session的管理
查看>>
我的友情链接
查看>>
Linux Vue环境搭建
查看>>
String、StringBuffer和StringBuilder
查看>>
SUDO 操作详解
查看>>
CSDN泄密统计
查看>>
我的友情链接
查看>>
redhat 生产环境版本选择
查看>>
第八章第二层交换和生成树协议(STP)
查看>>
ab 测试简单说明
查看>>
apache 伪静态转到nginx
查看>>