【LeetCode: 260. 只出现一次的数字 III | 位运算 | 哈希表】

news2025/7/12 15:30:03

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 哈希表
        • 🥦 求解思路1
      • ⚡ 位运算
        • 🥦 求解思路2
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 260. 只出现一次的数字 III

⛲ 题目描述

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

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

示例 1:

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。
示例 2:

输入:nums = [-1,0]
输出:[-1,0]
示例 3:

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

提示:

2 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
除两个只出现一次的整数外,nums 中的其他数字都出现两次

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路1
  1. 我们可以直接统计集合中元素的个数,找到只出现一次的俩个元素。
  2. 实现也比较简单,大家可以自行实现,此处不做过多的讲解。

⚡ 位运算

🥦 求解思路2
  1. 这道题目让我们求解的是,找到数组中只出现一次的俩个元素分别是什么。
  2. 第一次做还真的不容易想到,好在评论区有很多优秀的题解可以供我们参考。
  3. 具体求解思路如下:首先,我们还是通过异或运算,先把所有出现过俩次的元素都消除掉,遍历结束,最后的结果就是数组中只出现一次的俩个元素异或的值。
  4. 接下来重点来了,继续分组异或,怎么分组异或呢?什么意思呀?因为数组中的俩个元素只是出现了一次,那么,这俩个数字肯定是不相等的,并且,异或后,二进制中,一定有一个位置为1,也就是说这是区分俩个数字的标识。我们直接求得异或结果后最低 1及其后面的0,也叫 lowbit,可以用 s & -s 算出。
  5. 接下来再次遍历,并且进行判断,如果当前数num & lowbit == 0 ,此时在下标为0的数组中异或它的结果,反之,在下标为1的数组中异或它的结果。
  6. 具体求解的过程步骤请看下面代码。
🥦 实现代码
class Solution {
    public int[] singleNumber(int[] nums) {
        int res=0;
        for(int n:nums) res^=n;
        int[] ans=new int[2];
        int lowbit1=res&-res;
        for(int n:nums){
            if((lowbit1&n)==0){
                ans[0]^=n;
            }else{
                ans[1]^=n;
            }
        }
        return ans;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1103167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ModStartCMS v7.4.0 公共图片库支持,安全功能升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

C# 开发工具包 – 现已正式发布

作者&#xff1a;Wendy Breiding 排版&#xff1a;Alan Wang 今天&#xff0c;我们很高兴地宣布 C# 开发工具包正式发布&#xff0c;C# 开发工具包是一个 Visual Studio Code 扩展&#xff0c;为 Linux、macOS 和 Windows 带来了改进的编辑器优先 C# 开发体验。 谢谢社区的努…

文件传输软件的挑战与发展趋势

无论是在教育、医疗、金融、媒体、政府等行业&#xff0c;还是在个人生活和工作中&#xff0c;文件传输软件都有着广泛的应用价值和意义。然而&#xff0c;随着信息技术的发展和数据量的增长&#xff0c;文件传输软件也面临着一些挑战和问题&#xff0c;同时也有着一些发展趋势…

eNSP在hybrid接口上配置vlan

一、什么是vlan VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种通信技术&#xff0c;它可以将一个物理的局域网在逻辑上划分成多个广播域。每个VLAN都是一个广播域&#xff0c;VLAN内的主机可以直接通信&#xff0c;而VLAN之间则不能直…

SAP-QM-质检收货时报错

采购订单收货时&#xff0c;报错,点击蓝字查看未清的检验批&#xff0c;做使用决策QA11&#xff0c;完成后回复正常。

论文阅读-FCD-Net: 学习检测多类型同源深度伪造人脸图像

一、论文信息 论文题目&#xff1a;FCD-Net: Learning to Detect Multiple Types of Homologous Deepfake Face Images 作者团队&#xff1a;Ruidong Han , Xiaofeng Wang , Ningning Bai, Qin Wang, Zinian Liu, and Jianru Xue &#xff08;西安理工大学&#xff0c;西安交…

李航:关于大模型的思考及研究热点

本文阐述李航老师对 LLM 的一些看法&#xff0c;主要观点如下&#xff1a; ChatGPT 的突破主要在于规模带来的质变和模型调教方式的发明。 LLM 融合了实现人工智能的三条路径。 LLM 的开发需要结合第三者体验和第一者体验。 LLM 能近似生成心智语言。 LLM 需要与多模态大模…

Leetcode刷题详解——找到字符串中所有字母异位词

1. 题目链接&#xff1a;438. 找到字符串中所有字母异位词 2. 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括…

静态IP怎么设置网速快?

随着互联网的普及&#xff0c;越来越多的人需要连接到互联网。大多数人使用动态IP来连接&#xff0c;但有时您可能需要使用静态IP。如果您使用静态IP&#xff0c;那么您需要设置一个静态IP地址。这通常是在路由器或计算机上完成的。 首先&#xff0c;您需要了解什么是静态IP地址…

顺序表第一部分(介绍篇),三部曲后面分别是实现和介绍

目录 1、顺序表的概念及结构 1.1线性表 2、顺序表分类 2.1顺序表分类 2.1.1静态顺序表 2.1.2动态顺序表 1、顺序表的概念及结构 1.1线性表 顺序表是n个有相同特性的数据元素的有限序列。线性表非常常用&#xff0c;常见的数据表是&#xff1a; 顺序表&#xff0c;链表&…

德国人工智能公司【Kodex AI】完成160万欧元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于德国柏林的人工智能公司【Kodex AI】今日宣布已完成160万欧元融资。 本轮融资由Signals VC领投&#xff0c;Techstars、德意志银行等天使投资者参与&#xff0c;其中包括:most AI首席执行官…

【音视频流媒体】 3、ffmpeg、ffplay、ffprobe 超详细介绍

文章目录 一、ffmpeg1.1 安装1.2 基本参数 二、ffprobe2.1 查编码格式2.2 查视频时长 五、视频转流5.1 MP4转H2645.2 H264转MP45.3 AVI转MP45.4 MP4转H265 六、视频文件6.1 播放6.2 filter 过滤器6.2.1 crop 6.3 视频截取6.4 视频拼接6.5 获取分辨率 七、视频和图7.1 视频抽帧7…

DNS(一)

介绍 名字解析服务&#xff1a;当主机IP变化时&#xff0c;只要修改名称服务即可&#xff0c;用户仍可以通过原有的名称进行访问而不受影响。 本地名称解析配置文件&#xff1a;hosts LInux中是 /etc/hosts Windows中是 C:\Windows\System32\drivers\etc\hosts DNS&…

apk和小程序测试 学js代码

1.小程序通信 https 通信 大部分 只要是http协议所以漏洞都可能有 因为apk和小程序https 抓到报文 搞到web渗透 抓不到包 加密咋办 对称加密 因为密钥在源代码里 所以逆向 找到js代码 然后找到密钥 路径 小程序 工具 wxapkg 扫描小程序 &#xff08;反编译工…

IPIDEA代理IP在企业价格监控中的关键优势

价格监控是指企业在日常工作中&#xff0c;实时获取和分析竞争对手价格信息的过程&#xff0c;是一项非常重要的工作&#xff0c;它可以帮助企业及时了解市场上的价格变化&#xff0c;目的是为了及时调整自己当前的价格策略&#xff0c;保持竞争优势。而使用代理IP可以在这个过…

搭建Atlas2.2.0 集成CDH6.3.2 生产环境+kerberos

首先确保环境的干净&#xff0c;如果之前有安装过清理掉相关残留 确保安装atlas的服务器有足够的内存&#xff08;至少16G&#xff09;&#xff0c;有必要的hadoop角色 HDFS客户端 — 检索和更新Hadoop使用的用户组信息&#xff08;UGI&#xff09;中帐户成员资格的信息。对调…

小样本学习--(1)概论

目录 一、概述 二、小样本学习的数据集 1、Omniglot 2、MiniimageNet 三、孪生网络 四、三元组损失函数 一、概述 小样本学习用于处理训练数据集中样本数量少的情况&#xff0c;一般来说&#xff0c;小样本学习流程是这样的&#xff0c;从一个多种类少量样本的巨大数据集…

企业级无代码平台推荐,满足百种场景,几分钟内上线一个应用

随着企业数字化转型的持续推进&#xff0c;对数字化应用的需求逐渐增多&#xff0c;业务变化也变得越来越敏捷。这些变化对数字化应用开发周期和功能迭代速度提出了更高的要求。然而&#xff0c;面对这种背景&#xff0c;数字化应用开发所需的专业开发人员供给不足&#xff0c;…

揭秘美国黑产,购物券欺诈对商业活动的危害

业务风险并不是作为互联网、电商大国中国独有的问题&#xff0c;美国同行同样遭到众多专业黑产的侵袭。数量级虽不及中国之巨&#xff0c;却也足以对美国电商行业的发展造成重大危害。本文详细介绍了一些美国业界常见的黑产套利手法和细节&#xff0c;供国内从业人员参考。 数…

2020年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程&#xff08;1~6级&#xff09;全部真题・点这里 C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 下列程序运行结果是?&#xff08; &#xff09; a12 b23 cstr(&…