type
status
date
slug
summary
tags
icon
password

一、前言

本次刷题的题目是:《只出现一次的数字》

二、题目描述

notion image
notion image

三、解题思路

方法一:使用range进行细化切割比较

因为这道题直接说明了其余元素出现了两次而不是更多次。而且只是找到那一个单的值,不用返回原来的列表。所以我想的是将整个列表切割成只包含两个元素的小列表。所以可以用到range跳步进行比较。
range:range(start,end,step);start表示计数开始,默认从0开始;end表示结束,但是不包括stop;step表示步长默认为1

方法二:直接使用异或

不知道谁想出来的天才想法!
因为两个相同的数字异或为0,0和任何数字a异或都为a,异或又满足交换律。
用公式表达就是这样的:a^a=0 0^a=a a^b^a=a^a^b=b
所以对照这道题来说:就会将剩余的那个数给选择出来

四、解题脚本

方法一:

方法二:

五、出现的结果

notion image
Python练习-类型转换Python练习-双指针法
Loading...
JucanaYu
JucanaYu
干饭人,干饭魂🍚
最新发布
Python练习-类型转换
2025-4-9
Python练习-count、remove、append、extend
2025-4-8
Python练习-set和sorted
2025-4-6
Python练习-insert和del
2025-4-6
Python练习-range
2025-4-6
Python练习-双指针法
2025-4-6