217. Contains Duplicate
Difficulty: Easy
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
题目的意思是:给你个整型的数组,看看是否有元素相同,如果相同则返回true,如果没有则返回false。
第一思想是遍历检查,这个直接就时间超时了,这里就补贴代码了。后来看到Tags里面写但是hashtable,所以这里应该要和Hash相结合把。
写了个和hashmap应用解决的方法。
public class Solution { public boolean containsDuplicate(int[] nums) { int length = nums.length; if (length == 0) { return false; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < length; i ++) { int temp = nums[i]; if (map.containsKey(temp)) { return true; } else { map.put(temp, i); } } return false; } }
但是提交后发现,非常慢,效率不高,不知道是否有人知晓比较好的解决方法,希望告知,谢谢。
-------------------------------------------------------------------------------------------------
更新:6/4/2016 12:50:28 AM
经过排序之后,比较临近的元素这样效率更高!!
public class Solution { public boolean containsDuplicate(int[] nums) { Arrays.sort(nums); int length = nums.length; for (int i = 0; i < length; i ++) { if (i != length - 1 && nums[i] == nums[i + 1]){ return true; } else if (i == length - 1) { return false; } } return false; } }
相关推荐
13-3 LeetCode:198. 打家劫舍.mp4
12-5 LeetCode:101. 对称二叉树.mp4
12-3 LeetCode:226. 翻转二叉树.mp4
14-2 LeetCode:455. 分饼干.mp4
13-2 LeetCode:70. 爬楼梯.mp4
15-3 LeetCode:78. 子集 (2).mp4
15-2 LeetCode:46. 全排列 (2).mp4
10-5 LeetCode:23. 合并K个排序链表.mp4
10-4 LeetCode:347. 前 K 个高频元素.mp4
11-9 LeetCode:21. 合并两个有序链表.mp4
14-3 LeetCode:122. 买卖股票的最佳时机 II.mp4
12-2 LeetCode:374. 猜数字大小 (2).mp4
12-4 LeetCode:100. 相同的树 (2).mp4
10-3 LeetCode:215. 数组中的第 K 个最大元素.mp4
2、解题思路一开始没有理解题意,实际上,这道题目描述不够清楚基本题意如下:数组的下标,对应一个偏移量,表示下一步能够到达的下标举个例子输入:我们将每一个下标,都
示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4
2、解题思路 设置一个不重复位置指针,另一个向前移动,每一次都判断之前的是不是重复 如果重复,当前指针直接加一 不重复,将不重复指针加一,并将当前值复制过
vscode提交leetcode 我的leetcode练习笔记 结构 代码在根路径中,每个cpp文件都是一个问题的解决方案 有关特定问题的解决方案的一些说明在目录中。 我使用的工具 我使用扩展来测试和调试本地并提交我确定我的解决...
在IDE中解决LeetCode问题,支持leetcode.com与leetcode-cn.com,满足基本的做题需求。 理论上支持: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio。
LeetCode的特色在于它支持多种编程语言,包括Java、Python、C++等,这使得不同背景的开发者都能找到适合自己的解题方式。 二、oj.leetcode.com在线判题系统 oj.leetcode.com是LeetCode的在线判题部分,它允许用户...