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

    class Solution:
        def singleNumber(self, nums) -> int:
            k={}
            i=0
            while i < len(nums):
                m=nums[i]
                if m in k.keys():
                    k[m]=2
                    i+=1
                else:
                    k[m]=1
                    i+=1
            for i,j in k.items():
                if j==1:
                    return i

    用字典形式做的。

    执行用时 :124 ms, 在所有 Python3 提交中击败了68.54%的用户
    内存消耗 :16.1 MB, 在所有 Python3 提交中击败了5.03%的用户
     
    应该还可以简化:
    但是这样以后并没有优化到:
    class Solution:
        def singleNumber(self, nums) -> int:
            k={}
            i=0
            while i < len(nums):
                m=nums[i]
                if m in k.keys():
                    del k[m]
                    i+=1
                else:
                    k[m]=1
                    i+=1
            for i,j in k.items():
                return i
     
    耗时152ms
     
    用了popitems()之后,性能有所优化:
    class Solution:
        def singleNumber(self, nums) -> int:
            k={}
            i=0
            while i < len(nums):
                m=nums[i]
                if m in k.keys():
                    del k[m]
                    i+=1
                else:
                    k[m]=1
                    i+=1
            return k.popitem()[0]

    执行用时108ms,击败了78%的用户。

                                                                                                  ——2019.9.30

     
     
     
    位运算好神奇呀
    public int singleNumber(int[] nums) {
            //使用异或  可处理出现偶数次的情况
            int x = nums[0];
            for(int i = 1;i<nums.length;i++){
                x ^= nums[i];
            }
            return x;
        }

    ——2020.7.13

     
     
     
     
    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    HDU1285-确定比赛名次(拓扑排序)
    ftp sftp
    Python with 用法
    odoo 非root用户运行不成功
    linux 删除软连接
    vscode wsl php
    WSL 修改默认登录用户为root
    WSL ssh服务自启动
    odoo 获取model的所有字段
    odoo 在"动作"("Action")菜单中添加子菜单, 点击子菜单弹窗自定义form
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11613385.html
Copyright © 2011-2022 走看看