首页 > 其他分享 >137. 只出现一次的数字 II(中)

137. 只出现一次的数字 II(中)

时间:2024-02-14 20:55:39浏览次数:24  
标签:一次 数字 nums 列表 II 137 排序 出现

目录

题目

  • 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
    你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

示例 1:

输入:nums = [2,2,3,2]
输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,99]
输出:99

法一、排序

class Solution:  
    def singleNumber(self, nums: List[int]) -> int:  
        # 对列表进行排序  
        nums.sort()  
        n = len(nums)  
        # 遍历排序后的列表  
        for i in range(n):  
            # 如果当前数字与前一个数字不同,或者已经是列表的倒数第二个元素,则它可能是只出现一次的数字  
            if i == 0 or nums[i] != nums[i - 1]:  
                # 检查当前数字是否连续出现了三次  
                if i < n - 2 and nums[i] == nums[i + 1] == nums[i + 2]:  
                    # 如果是,则跳过接下来的两个数字  
                    i += 2  
                else:  
                    # 如果不是出现了三次,返回当前数字  
                    return nums[i]  
        # 如果遍历完整个列表都没有找到只出现一次的数字,则返回最后一个数字(理论上不应该出现这种情况)  
        return nums[-1]  

法二、位运算

  • 待更新...

标签:一次,数字,nums,列表,II,137,排序,出现
From: https://www.cnblogs.com/lushuang55/p/18015585

相关文章

  • Python 基本数据类型——数字类型
    Python基本数据类型——数字类型一、数字类型1、整数进制引导符号举例十进制无1234二进制0b0B0b10101八进制0o0O0o732十六进制0x0X0xABC取值范围理论上可取遍所有值,但是实际上受限于内存大小2、浮点数0.0,10.2,-1.23科学计数法:9.......
  • 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理
    FluentScheduler介绍github地址:https://github.com/fluentscheduler/FluentSchedulerFluentScheduler是一个简单的任务调度框架,使用起来非常方便,这个框架也是我在搜索iis预加载的时候偶然间发现的,立马拿来试用一下,感觉爽呆了,当然还有Quarz.Net之类的其他任务管理框架,不过看配置......
  • P1182 数列分段 Section II
    原题链接作为二分答案的入门题非常合适。很典型的二分答案。但是这题有一个坑点,left的值不能设为0这种确定的值,而是应该设为这个数组的最大值。这道题警示了我二分答案的一个重要前提:确定合理的二分区间。题解首先,判断单调性,对于一个最大值mid,如果能够满足check(),那么mid+1,mid+......
  • linux 中如何提取一列中纯数字或者纯字母的行
     001、纯数字[root@PC1test1]#lsa.txt[root@PC1test1]#cata.txt##测试文本sdf3247fy323td34342fff435tih6334s234dfg65[root@PC1test1]#grep"^[0-9]\+$"a.txt##提取纯数字的行3424356334 002、纯字母[root@PC1t......
  • 代码随想录 day44 零钱兑换 II 组合总和 Ⅳ
    零钱兑换II这里组合类问题用上了dp[j]=dp[j-nums[i]]这个递推式由于说了硬币可以用无数次也就是这是个完全背包问题这里先遍历物品再遍历背包就是算了组合数反过来就是算排列数组合总和Ⅳ这题就是组合类问题的排列数模板题......
  • pytorch MNIST数据集手写数字识别
    MNIST包括6万张28x28的训练样本,1万张测试样本,很多教程都会对它”下手”几乎成为一个“典范”,可以说它就是计算机视觉里面的HelloWorld。所以我们这里也会使用MNIST来进行实战。importtorchimporttorch.nnasnnimporttorch.nn.functionalasFimporttorch.optimasopt......
  • [LeetCode] 2641. Cousins in Binary Tree II
    Giventherootofabinarytree,replacethevalueofeachnodeinthetreewiththesumofallitscousins'values.Twonodesofabinarytreearecousinsiftheyhavethesamedepthwithdifferentparents.Returntherootofthemodifiedtree.Note......
  • 代码随想录 day43 最后一块石头的重量 II 目标和 一和零
    最后一块石头的重量II递推式和结果处理结果的意思是sum-target和target这两堆石头相撞目标和第一次见被薄纱这是组合类的dp递推一和零注意循环嵌套位置!这里是str外循环表示遍历物品里面的两层ij循环表示遍历背包容量这里是一个二维容量的背包......
  • IIS创建和管理虚拟网站
    实验介绍:本文会详细介绍创建虚拟站点的三种方法一:IP地址建立站点1.打开安装了IIS的windows,进入ip配置页面。添加几个ip,我这里添加的是192.168.1.209,192.168.1.210,192.168.1.2112.打开IIS管理页面,展开树形菜单,右键网站,点击添加网站3.在网站名称中输入你想设置的名称,物理......
  • C语言解题 || 计算数字矩阵的2条对角线之和
    题目:写一个函数calc_matrix(intn)实现如下功能:先输入整数n,然后输入nn个整数,构成nn矩阵,计算对角线上的数之和,并输出该和。例如:先输入3,然后输入1,2,3,4,5,6,7,8,9对角线上是数之和为:1+5+9+3+7=25。写出完整的程序代码,在main函数中调用上述函数calc_matrix题目分析:通过研究数......