【LeetCode】每日一题 2024_10_12 求出出现两次数字的 XOR 值(哈希、模拟)

devtools/2024/10/18 16:53:50/

前言

每天和你一起刷 LeetCode 每日一题~

LeetCode 启动!

题目:leetcode.cn/problems/find-the-xor-of-numbers-which-appear-twice/description/?envType=daily-question&envId=2024-10-12" rel="nofollow">求出出现两次数字的 XOR 值

昨天没有更新,因为昨天的题目和前天的每日一题是一模一样的,只是同一道题目,加强了数据范围,恰好的是,前天做这道题的时候我就在题解中分析了暴力做法和优化后的 nlogn 做法 . . . 所以昨天就没有直接把文章 CV 之后再发一遍了~

代码与解题思路

今天的题目比较简单~

题目要求对出现两次的数相互进行异或操作,用哈希计数,出现第二次就异或到 ans 中即可

func duplicateNumbersXOR(nums []int) (ans int) {// 哈希计数,出现两次的就异或一下cnt := map[int]int{}for _, v := range nums {cnt[v]++if cnt[v] > 1 { // 出现两次ans ^= v}}return ans
}

有没有更优的解法呢?

已经做到了 O(N) 的时间复杂度,再往下一步就是做到 O(1) 的空间复杂度了。

对于集合计数相关的题目,还有一种巧妙的方法,通过数字的二进制位来实现一个集合:

func duplicateNumbersXOR(nums []int) (ans int) {vis := 0for _, v := range nums {if vis >> v & 1 == 1 { // 该位置是 1,代表该数字已经出现过一次,这次是第二次ans ^= v // 出现两次的值异或到一起} else {vis |= 1 << v // 把该值转化成二进制位加入 vis 集合中}}return ans
}

每天进步一点点,我们明天不见不散~

可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。


http://www.ppmy.cn/devtools/125373.html

相关文章

Spark常用RDD算子:transformation转换算子以及action触发算子

文章目录 1. 算子&#xff08;方法&#xff09;介绍2. 常用transformation算子2.1 map 2.2 flatMap2.3 filter2.4 distinct2.6 groupBy2.7 sortBy()2.8 k-v数据[(k,v),(k1,v1)] 3. 常用action算子 1. 算子&#xff08;方法&#xff09;介绍 rdd中封装了各种算子方便进行计算&a…

Spring Boot敏感数据动态配置:深入实践与安全性提升

在构建Spring Boot应用的过程中&#xff0c;敏感数据的处理与保护是至关重要的。传统上&#xff0c;这些敏感数据&#xff08;如数据库密码、API密钥、加密密钥等&#xff09;可能被硬编码在配置文件中&#xff0c;这不仅增加了泄露的风险&#xff0c;也限制了配置的灵活性和可…

2021年华为杯数学建模竞赛F题论文和代码

COVID-19 疫情期间生活物资的科学管理问题 在疫情封闭式管理期间&#xff0c;生活物资的高效发放有助于减少人员接触&#xff0c;对疫情防控具有重要的意义。本文基于长春市疫情期间相关数据资料&#xff0c;分析了发放生活物资在疫情防控中的作用&#xff0c;对长春市生活物资…

linux线程 | 线程的控制(二)

前言&#xff1a; 本节内容是线程的控制部分的第二个小节。 主要是列出我们的线程控制部分的几个细节性问题以及我们的线程分离。这些都是需要大量的代码去进行实验的。所以&#xff0c; 准备好接受新知识的友友们请耐心观看。 现在开始我们的学习吧。 ps:本节内容适合了解线程…

Shell编程-逻辑判断

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们前面学习了那么多命令&#xff0c;以及涉及到部分逻辑判断的问题。从简单来说&#xff0c;他就是Shell编程&#xff0c;…

使用 Redis 在 Spring Boot 中实现排行榜功能

一、Redis Sorted Set 简介 Redis 提供的 Sorted Set 数据结构非常适合用于排行榜场景。Sorted Set 既具备 Set 的无重复元素特性,又具备 List 的排序特性。Sorted Set 中的每个元素都会关联一个分数(score),通过这个分数进行排序。 1.1 Sorted Set 的基本操作 添加元素:…

优先算法1--双指针

“一念既出&#xff0c;万山无阻。”加油陌生人&#xff01; 目录 1.双指针--移动零 2.双指针-复写零 ok&#xff0c;首先在学习之前&#xff0c;为了方便大家后面的学习&#xff0c;我们这里需要补充一个知识点&#xff0c;我这里所谓的指针&#xff0c;不是之前学习的带有…

前端开发设计模式——装饰器模式

目录 一、装饰器模式的定义和特点 1.定义 2.特点 二、装饰器模式的实现方式 1.在原生JS中实现&#xff08;以类的形式为例&#xff09; 2、在Vue中实现&#xff08;以指令和混入为例&#xff09; 2.1、指令方式实现装饰功能 2.2、混入方式实现装饰功能 三、装饰器模式的…