Leetcode简单:136. 只出现一次的数字

【LeetCode】第136题——只出现一次的数字(难度:简单) 【LeetCode】第136题——只出现一次的数字(难度:简单)题目描述解题思路代码详解思路一思路二注意点 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 你可以不使用额外空间来实现吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problem 阅读详情

题目

  • 题号:136
  • 难度:简单
  • https://leetcode-cn.com/problems/single-number/

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

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

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

示例 2:

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

实现

第一种:通过集合的方法

C# 语言

public class Solution
{
    public int SingleNumber(int[] nums)
    {
        HashSet<int> h = new HashSet<int>();
        for (int i = 0; i < nums.Length; i++)
        {
            if (h.Contains(nums[i]))
            {
                h.Remove(nums[i]);
            }
            else
            {
                h.Add(nums[i]);
            }
        }
        return h.ElementAt(0);
    }
}

Python 语言

class Solution(object):
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        h = set()
        for num in nums:
            if num in h:
                h.remove(num)
            else:
                h.add(num)
        return list(h)[0]

第二种:利用位运算的方法。

A: 00 00 11 00
B: 00 00 01 11

A^B: 00 00 10 11
B^A: 00 00 10 11

A^A: 00 00 00 00
A^0: 00 00 11 00

A^B^A: = A^A^B = B = 00 00 01 11

"异或"操作满足交换律和结合律。

C# 实现

public class Solution
{
    public int SingleNumber(int[] nums)
    {
        int result = 0;
            
        for (int i = 0; i < nums.Length; i++)
        {
            result ^= nums[i];
        }
        return result;
    }
}

Python 实现

class Solution(object):
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        result = 0
        for item in nums:
            result ^= item
        return result
力扣136. 只出现一次的数字 数组中出现两次的数字 只出现一次的数字 题目来自 代码及思路 按位或 | ,有一为一,其他为零。(二进制位中对应运算的两个二进制位,只要有一个为1,其结果就是1) 0011 10进制3 0010 10进制2 0011 10进制3(结果) 按位与 & ,均一为一,其他为零。(对应的二进制位均为1,结果才是1) 0011 10进制3 0010 10进制2 0010 10进制2(结果) 按位异或 ^,不同为一,其他为零。(比如 (1^0) (0^1) 阅读详情

相关推荐

【简单】力扣算法题解析LeetCode136:只出现一次的数字

本文介绍了如何在非空整数数组中找到只出现一次的元素(其他元素均出现两次),要求使用线性时间复杂度和常量空间。通过异或运算的归零律、恒等律和交换律,将所有元素异或后,成对元素抵消为0,最终结果即为目标元素。Java实现通过遍历数组进行异或运算,时间复杂度O(n),空间复杂度O(1)。

ylumwd的博客 356

【Leetcode刷题篇】leetcode136 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解题思路1:用hashset来做 public int singleNumber(int[] nums) { HashSet<Integer> hashset = new HashSet.

Mind_programmonkey的博客 472

单目标跟踪算法及其复现过程---SiamFC(一)

在test.py文件中,就是利用训练出来的模型进行测试,需要更改预训练模型的路径,测试集的路径,以OTB100为例,最后输出的是对每一帧目标位置的坐标点。代码如下:首先需要下载got10k官方库,只需要在终端输入(注意:在终端安装各种库的时候不能使用网络代理),在环境已经配置到的情况下,只需要该其中的路径和就可以运行。这个系列博客仅为了记录各目标跟踪算法的复现(大多为跑通大佬们实现的代码),包括其中出现的很多问题和错误,学到的新知识等等。解决,而且只使用在线的方法,限制了他们可以学习的模型的丰富性。

weixin_58244117的博客 4760

LeetCode:136. 只出现一次的数字(哈希表)

题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 普通解法: # 只出现一次的数字 from typing import List class Solution: def singleNumber(self, nums: List[int]) -> int: record_dict = {} for i, item in enumerate(nums): if item in

Baron_wu的博客 427

arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。...

weixin_39611722的博客 3455

数学建模国赛C题实战:从数据预处理到模型优化的完整流程(附Python代码)

本文系统讲解了数学建模国赛C题的完整实战流程,涵盖从数据预处理、模型选择与构建到优化与结果可视化的关键步骤。文章重点分享了如何利用Python进行高效的数据清洗、特征工程,并提供了多种机器学习模型的实现代码与对比验证方法,旨在帮助参赛者构建逻辑清晰、结果可靠的解决方案。

weixin_29079643的博客 293

Java找出并返回数组中只出现了一次的元素

本算法来源与leetCode的一道题目 《只出现一次的数字》(中等难度) 思路是使用哈希映射统计数组中每个元素的出现次数。对于哈希映射中的每个键值对,键表示一个元素,值表示其出现的次数。

Orange_aec的博客 742

VSCode+ESP-IDF开发环境搭建:从零开始创建你的第一个物联网项目(2024最新版)

本文详细介绍了如何在2024年使用VSCode和ESP-IDF搭建物联网开发环境,从零开始创建第一个物联网项目。内容包括环境准备、ESP-IDF配置、项目创建与结构解析、构建烧录步骤以及高级技巧和常见问题解决方案,帮助开发者快速上手ESP32开发。

weixin_29165725的博客 330

算法(java)

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 class Solution { public int singleNumber(in...

fighting 238

c语言实现语音检测vad_壹鸽技术科普·智能语音客服系统中的前端语音处理技术...

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,...

weixin_36431018的博客 507

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8312

LeetCode题解(1640):能否连接形成数组(Python)

题目:原题链接(简单) 标签:数组、排序、哈希表 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 40ms Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def canFormArray(self, arr: List[int], pieces: List[List[int]]) -> bool: lst =

长行 568

2026美赛数学建模竞赛 MCM C题:与星共舞的数据 问题一 粉丝投票估计模型 详细解题思路和代码

2026美赛数学建模竞赛 MCM C题:与星共舞的数据 问题一 粉丝投票估计模型 详细解题思路和代码.。开发一个(或多个)数学模型,用于估算每位选手在他们参赛的各周的粉丝投票数(这是未知且严格保密的)。您的模型是否能正确估算出导致每周淘汰结果一致的粉丝投票数?提供一致性度量。您估算出的粉丝投票总数有多少确定性?这种确定性对于每位选手/每周是否总是相同?为您的估算提供确定性度量。

YOLO 852

LeetCode第136题:只出现一次的数字(简单)

LeetCode第136题:只出现一次的数字(简单) 题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 解题思路:用HashMap存储是很容易想到的方法,但是题目要求不能使用额外的空间。所以我选择了排序的方法。 class Solution { public int singleNumber(int[] nums) { Arrays.sort(n

new_whiter的博客 462

cuRobo 入门教程(二)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供正向/逆向运动学、碰撞检测、数值优化等核心功能,支持在NVIDIA Jetson Orin等平台上实现毫秒级运动规划。该库创新性地采用并行轨迹优化技术,结合nvblox工具实现深度摄像头避障功能,并通过多层ESDF结构处理动态障碍物。性能测试显示,在RTX 6000 Ada显卡上可实现99.85%的成功率,平均规划时间仅39毫秒。cuRobo还提供Python API支持神经网络集成,并具备批量环境处理能力,特别适用于工业机器人应用场景。最新版本通过算法

2506_90492529的博客 1295

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

leetcode题:136. 只出现一次的数字(简单)

一、题目描述:136. 只出现一次的数字(简单) 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] 输出: 4 来源:力扣(LeetCode) 链接:https:/...

tankpanv的博客 192

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

leetcode-268. 缺失数字,难度:简单 && leetcode-136. 只出现一次的数字,难度:简单

目录268题目思路代码结果联想136题目思路代码复盘思路代码结果 268 题目 给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? 思路 因为数组中必有一数缺失,那么我们可以先找出数组中的最大值(用于界定完整序列的范围),再分别求出完整序列和与数组数字和,相减即

技术宇宙 475

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Leetcode136:只出现一次的数字(简单题)python3

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/single-number 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 思路:这里考虑不使

weixin_36679158的博客 281

【LeetCode】C++ :简单题 - 哈希表 136. 只出现一次的数字

136. 只出现一次的数字 难度简单1664 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] 输出: 4 这题有很多种解法,先试试最基础的。 1. 哈希表 class Solution { public: int singleNumber(vect..

weixin_44566432的博客 234

【LeetCode】136. 只出现一次的数字、118. 杨辉三角

作者:小卢专栏:《Leetcode》喜欢的话:世间因为少年的挺身而出,而更加瑰丽。——《人民日报》

一个喜欢猫咪的程序员 233

LeetCode、136. 只出现一次的数字【简单,位运算】

LeetCode、136. 只出现一次的数字【简单,位运算】 题目内容:给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 1262

力扣每日打卡 136. 只出现一次的数字 (简单)

这是刷算法题的第十五天,用到的语言是JS 题目:力扣 136. 只出现一次的数字 (简单)

2301_79369384的博客 1144

【算法详解】力扣136.只出现一次的数字

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。示例 1 :输入:nums = [2,2,1]输出:1。

HearMeRoar_的博客 1772

力扣第136题:只出现一次的数字 巧用异或

通过利用异或运算的特性,这道题可以在OnO(n)On时间复杂度内解决,而且只需要O1O(1)O1的空间复杂度。异或操作的特性使得我们能够快速找到只出现一次的元素,非常高效。

weixin_48941116的博客 953

LeetCode 136 - 只出现一次的数字

题目要求在非空整数数组中找出只出现一次的数字(其他数字均出现两次),要求使用线性时间复杂度和常量空间。最佳解法是利用异或运算的特性:相同数字异或结果为0,任何数与0异或为其本身,且异或满足交换律和结合律。通过将所有数字异或,成对数字会抵消为0,最终结果即为只出现一次的数字。该方法时间复杂度O(n),空间复杂度O(1)。虽然哈希表也可解,但不符合空间要求。异或解法简洁高效,是此类问题的经典解决方案。

weixin_45980775的博客 970

LeetCode第136题_只出现一次的数字

给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

qq_40263592的博客 1200
上一篇: Leetcode中等:641. 设计循环双端队列
下一篇: Leetcode中等:134. 加油站
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值