Leetcode--136. 只出现一次的数字
初始化一个变量:创建一个变量 遍历数组:从数组的第一个元素开始,逐个将当前元素与 计算异或结果:由于数组中大部分数字出现两次,异或操作的结果会相互抵消,只留下那个只出现一次的数字。
发布日期:2021-04-30 21:03:06
浏览次数:132
分类:精选文章
本文共 818 字,大约阅读时间需要 2 分钟。
要解决这个问题,我们需要找到一个只在整数数组中出现一次的元素,其余元素都出现了两次。我们可以利用位运算中的异或操作来高效地解决这个问题,时间复杂度为O(n),并且不需要额外的空间。
方法思路
我们可以通过以下步骤来解决这个问题:
x初始化为0。x进行异或操作。解释
- 异或操作的性质:异或操作满足交换律和结合律。一个数异或它自己等于0,任何数异或0等于它本身。
- 数组中的元素出现次数:数组中大部分数字出现两次,异或两次的结果为0。只有那个只出现一次的数字会被异或一次,结果不变。
- 最终结果:遍历完数组后,变量
x将等于那个只出现一次的数字。
代码实现
public class Solution136 { public static int singleNumber(int[] nums) { int x = 0; for (int num : nums) { x ^= num; } return x; } public static void main(String[] args) { int[] nums = {4, 1, 2, 1, 2}; System.out.println(singleNumber(nums)); }} 代码解释
- 初始化变量:
x初始化为0。 - 遍历数组:使用for循环遍历数组中的每个元素
num。 - 异或操作:将
x与当前元素num进行异或操作。 - 返回结果:遍历完数组后,
x的值即为只出现一次的数字。
通过这种方法,我们可以在O(n)的时间复杂度内高效地找到只出现一次的元素,并且不需要额外的空间。
发表评论
最新留言
表示我来过!
[***.240.166.169]2026年05月29日 10时26分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP 数组怎么添加一个元素
2023-02-28
PHP 文件操作
2023-02-28
php 文字弹幕效果代码,HTML5文字弹幕效果
2023-02-28
php 时间日期函数,获取今天开始时间,结束时间
2023-02-28
php 标准规范
2023-02-28
PHP 浮点型精度运算相关问题
2023-02-28
php 浮点型计算精度问题
2023-02-28
php 特定时间段统计,jpgraph某个时间段的数据统计
2023-02-28
php 生成csv mac下乱码
2023-02-28
php 生成证书 签名及验签
2023-02-28
PHP 的标准输入与输出
2023-02-28
php 笔记 (早前的,很乱)
2023-02-28
PHP 第一天
2023-02-28
Redis使用量暴增,快速定位有哪些大key在作怪
2023-02-28
PHP 统计数据功能 有感
2023-02-28
SpringBoot处理JSON数据
2023-02-28
PHP 输入输出流合集
2023-02-28
php--防止sql注入的方法
2023-02-28
php-兔子问题,斐波那契数列
2023-02-28