题干分析:
本题问题为在给定一个数组的情况下,找出其中是否含有重复的元素,如果含有则返回真,如果不含有则返回假。
解题分析:
受到上一次推送所使用的HashMap方法的影响,本题也可以对数组中的元素进行统计。如果某元素统计次数大于1了则返回真,否则返回假。
问题解决:
import java.util.HashMap;
import java.util.Map;
public class Solution {
public boolean containsDuplicate(int[] nums) {
if(nums.length<2)
return false;
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(inti=0;i<nums.length;i++){
if(map.containsKey(nums[i]))
return true;
map.put(nums[i], 1);
}
return false;
}
}
本题总结:
通过前面推送所介绍的HashMap方法来解决本题以及类似对元素进行统计次数的问题,使用HashMap方法都是非常好的解决工具。本题有几个对代码效率提高的小点:(1).首先进行判断数组长度是不是小于2,如果是就直接返回假,不用运行下面的很长的代码;(2).在往map集合中添加元素的时候,由于本来就有判断该map集合含不含指定key的containsKey方法,所以如果判断结果为真就可以直接返回真了,但是如果没有的话也要进行对该元素进行存储,因为后面的元素需要对之前含不含该元素进行判断。
最终提交代码之后可能是因为代码效率改进的关系,最终击败了11.04%的对手。
写在最后:读者在读到本文的时候如果有什么想法和问题,欢迎和小编进行沟通交流,希望我们可以共同进步^_^(ps:如果读者有需要可以关注本人的微信公众号:零基础学数据挖掘)