LeetCOde217详细分析并附求解代码


题干分析:

    本题问题为在给定一个数组的情况下,找出其中是否含有重复的元素,如果含有则返回真,如果不含有则返回假。

解题分析:

    受到上一次推送所使用的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集合含不含指定keycontainsKey方法,所以如果判断结果为真就可以直接返回真了,但是如果没有的话也要进行对该元素进行存储,因为后面的元素需要对之前含不含该元素进行判断。

最终提交代码之后可能是因为代码效率改进的关系,最终击败了11.04%的对手。

写在最后:读者在读到本文的时候如果有什么想法和问题,欢迎和小编进行沟通交流,希望我们可以共同进步^_^ps:如果读者有需要可以关注本人的微信公众号:零基础学数据挖掘)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值