首页 > 其他分享 >136. 只出现一次的数字

136. 只出现一次的数字

时间:2023-08-06 22:01:11浏览次数:291  
标签:一次 数字 nums 示例 复杂度 元素 reduce 异或 136

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

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

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

示例 2 :

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

示例 3 :

输入:nums = [1]
输出:1

看到这一题如果不考虑时间和空间复杂度,我的第一反应是两层循环。

然后我实在想不出怎么写,我就去看注解,我发现注解里没有两层循环的方法。使用集合这样的数据结构,我发现我很少能想到这样做。确实要提升

然后真正的解法是使用异或,异或这个知道,但从来没有用它来编程,第一次使用。。。。。。

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        return reduce(lambda x, y: x ^ y, nums)

reduce函数是将给定的函数应用于序列的前两个元素,然后将结果与下一个元素继续应用,直到序列中的所有元素被处理完毕。

reduce(function, iterable[, initializer])

标签:一次,数字,nums,示例,复杂度,元素,reduce,异或,136
From: https://blog.51cto.com/u_16123878/6987176

相关文章

  • c语言作业之猜数字游戏
    //猜数字游戏#include<time.h>#include<stdlib.h>//void表示“无类型”,相应的void*为无类型指针,即1.对函数返回的限定;2.对函数参数的限定//当函数不需要返回值时,必须用void限定例如:voidfunc(inta,char*b)//当函数不允许接受参数时,必须使用void限定例如:intfunc(void)......
  • 001、认识C语言,第一次编码
    001、认识C语言,第一次编码​ C语言常用于底层开发(应用层之下【操作系统、驱动】)写C语言代码的步骤:创建一个项目;创建一个源文件(xxx.c)【头文件:xxx.h】;写代码;编译代码(ctrl+F7);运行代码(ctrl+F5【不调试】、F5【调试】)主函数(一个工程中只能有一个主函数):/***写C语言的第一步......
  • 请输入一个字符串 由此可以得出这个字符串大写字母.小写字母.数字.符号的个数
    importjava.util.Scanner;publicclassDemo02{  publicstaticvoidmain(String[]args){    System.out.println("请输入一个字符串:");    Stringcc=newScanner(System.in).nextLine();    char[]arr=cc.toCharArray();    intc......
  • 再给我一次机会 将故事改写
    7月下.先别羡慕了,再这么摆明年省队都没你了LOJ2769「ROI2017Day1」前往大都会某国有编号为\(1\)到\(n\)的\(n\)座城市,还有编号为\(1\)到\(m\)的\(m\)条单向铁路线。\(i\)号铁路线被沿途\((s_i+1)\)座城市分为\(s_i\)段。\(i\)号铁路线从起点到终点依次......
  • 记一次体验愉快的GameJam|上交复旦x72h极限游戏开发挑战赛
    太长不看版【上交复旦x72h极限游戏开发挑战赛作品《Colorful》宣传短片】 【腾讯×上交复旦72hgamejam极限游戏开发挑战赛作品《Colorful》全流程演示】 试玩demo下载链接:https://pan.baidu.com/s/1Xdksy97qF8Qac31H6nUGww 提取码:wmuq游戏简介:你说得对,但是《卡乐芙(col......
  • PPT| 钢铁行业数字化顶层规划汇报方案P96
    PPT共96页,由于篇幅有限,以下为部分资料.......
  • 我的第十一次C语言练习
    #definePI3.14159//intmain(void)//{// intnumber=7;// floatpies=12.75;// intcost=7800;// printf("The%dcontestantsate%fberrypies.\n",number,pies);// printf("Thevalueofpiis%f.\n",PI);// printf("Fare......
  • 20230805 Datawhale第一次直播笔记
    机器学习上分技巧内容解析subtask是并列的,并且取最优,那么只需要针对最优进行优化转化为回归问题是否会更加准确数据分析和特征工程是非常关键的部分数据探索性分析(EDA):数据集大小,字段类型缺失值情况特征是否冗余是否存在时间信息标签的分布训练集测试集的分布单变量/......
  • IP和数字互相转换
    IP和数字互相转换目录IP和数字互相转换IP转数字数字转ipIP转数字原理:IP的每段是0~255的整数,把每段转为8位的二进制后,再组合起来得到一个32位的二进制数,把这个32位的二进制数转换为十进制数以ip1.2.3.4为例分为4段1.2.3.4拆分为二进......
  • 记一次因为C#官方扩展导致自动补全出错的情况 (C# & Godot)
    现象最近使用Vscode结合Godot使用时突然发现自动补全出问题了,发现一部分自动补全能弹出补全项目,但是确认后不起作用,还会吞掉弹出自动补全后输入的字符。大概是下图这样的感觉(截图时已修好,图为演示摆拍)线索找了很多办法,有一瞬间我突然发现C#官方扩展的评论区在短期内......