zoukankan      html  css  js  c++  java
  • 只出现一次的数字

    此博客连接:https://www.cnblogs.com/ping2yingshi/p/14045519.html

    只出现一次的数字

    题目链接:https://leetcode-cn.com/problems/single-number/submissions/

    题目

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    说明:

    你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

    示例 1:

    输入: [2,2,1]
    输出: 1
    示例 2:

    输入: [4,1,2,1,2]
    输出: 4

    知识

    哈希表是以(key,value)形式来存储数据,当你想找某个key下的value值时,通过哈希表中的对应关系来找value的值。

    思想

    把不同的数字当成key值,把每个数字的个数当成value的值,然后判断value中哪个值为1,返回对应的key值。

    方法

    1.先把数组中不同的数字存到哈希表的key中。

    2.计算数组中不同数字的个数,存到哈希表的value中。

    3.判断哪个vlaue的值为1。

    4.返回value为1的key的值。

    代码

    class Solution {
        public int singleNumber(int[] nums) {
            Map<Integer,Integer> map=new HashMap();//创建哈希表
            int len=nums.length;
            //创建哈希表
            for(Integer temp:nums)
            {
               Integer count=map.get(temp);//获取到i对应的value
    
               if(count==null)
               {
                  map.put(temp,1);
               }
               else{
                  map.put(temp,++count); 
               }
                
            }
            //判断
            for(Integer i:map.keySet())
            {
                 Integer count=map.get(i);
                 if(count==1)
                 {
                    //  int result=map.keySet(i);
                     return i;
                 }
            }
            return -1;
        }
    }

     java中竟然没有foreach()这个循环,使用for(l类型 name:遍历的变量)。

    出来混总是要还的
  • 相关阅读:
    pysocketserver
    协程
    py模块和包
    py网络编程
    GridView绑定技巧终结者
    iOS 证书/私钥/代码签名/描述文件
    八拜之交
    POJ3230(Travel)
    POJ2553(The Bottom of a Graph)
    动态规划的实质
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14045519.html
Copyright © 2011-2022 走看看