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



    一、数学法思路:题中说其他元素均出现三次。

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            return (3 * sum(list(set(nums))) - sum(nums)) // 2
    

    二、思路:遍历nums,用字典记录每个元素的次数,遍历字典返回value为1对应的key。

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            mydict = {}
            for item in nums:
                if item in mydict.keys():
                    mydict[item] += 1
                else:
                    mydict[item] = 1
            for k, v in mydict.items():
                if v == 1:
                    return k
    

    三、先转set去重,然后遍历set返回在原list中只出现一次的元素。

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            newlist = list(set(nums))
            for item in newlist:
                if nums.count(item) > 1:
                    continue
                else:
                    return item
    
  • 相关阅读:
    5、打开界面
    C++模版完全解析
    运维二三事儿
    tcpdump命令使用方法
    putty源码阅读----plink
    nginx--提供一键安装脚本
    vt100控制符
    zabbix---简介
    Dictionary
    装箱、拆箱
  • 原文地址:https://www.cnblogs.com/panweiwei/p/13754623.html
Copyright © 2011-2022 走看看