leetcode217 Contains Duplicate(JavaScript)
来源:互联网 发布:matlab数组倒序 编辑:程序博客网 时间:2024/06/05 07:17
问题
题目地址:leetcode217
翻译:
给定一个整数数组,找出其中有无至少出现两次的数,有,返回true,没有,返回false。
举例:
输入:[1,2,3]
输出:false
输入:[1,2,4,1]
输出:true
方法1
直接上最暴躁的逐个比较,每出现一个值x,直接在数组中向后寻找是否有等于x的值。
/** * @param {number[]} nums * @return {boolean} brute*/ var containsDuplicate = function(nums) { var flag=false; for(var i=0;i<nums.length;i++) for(var j=i+1;j<nums.length;j++) { if(nums[i]===nums[j]) { flag=true; break; } } return flag; };
时间复杂度是O(n*n),一直不太明白
方法2
既然是数组,自然可以先排序,再判断。
/** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { var arr=[]; var flag=false; arr=nums.sort(); //此处并没有真正排序,但是对于判断有没有相同的数而言已经足够了 for(var i=0;i<nums.length;i++) { if(nums[i]===nums[i+1]) { flag=true; break; } } return flag; };
JavaScript的sort()函数的本质是快速排序,所以这里是O(n*logn)。
方法3
仿照之前leetcode 1类似hashmap的方法,做一个类似的处理。
/** * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { var map=[]; var flag=false; for(var i=0;i<nums.length;i++) { if(map[nums[i]]!==undefined) { flag=true; break; } map[nums[i]]=i; } return flag; };
应该是O(n)的解法了,但在实际运行时间上并没有什么进步,和上一个方法差距很小。
0 0
- leetcode217 Contains Duplicate(JavaScript)
- LeetCode217:Contains Duplicate
- Leetcode217. Contains Duplicate
- leetcode217 Contains Duplicate
- leetcode217:Contains Duplicate
- leetcode217. contains duplicate
- LeetCode217 Contains Duplicate
- leetcode217: Contains Duplicate
- Leetcode217. Contains Duplicate
- leetcode217~Contains Duplicate
- leetcode217 Contains Duplicate java
- leetcode217. Contains Duplicate
- LeetCode217. Contains Duplicate解题
- Leetcode217——Contains Duplicate
- leetcode217---Contains Duplicate(是否有重复数)
- python set() 函数-leetcode217 contains duplicate
- LeetCode217 Contains Duplicate(判断数组是否包含重复值)
- leetcode系列(19)Contains Duplicate,Contains Duplicate II
- java 线程池的使用
- activity与fragment切换动画
- 关于Spring事务嵌套的一点认识
- 设计模式学习(代理模式)
- 点击Enter登录
- leetcode217 Contains Duplicate(JavaScript)
- bootstrap栅格系统自定义列
- js 修改必须只有一个入口
- CC254x简介-CC2541/CC2540
- C语言指向多维数组的指针
- nginx,tomcat配置动静分离
- 12.Oracle存储过程
- php模拟post提交提交json数据
- 关于Android的.so文件你所需要知道的-转载记录