力扣刷题Days15-136. 只出现一次的数字(js)

目录

1,题目

2,代码

2.1利用map()数据结构 

2.2利用Set()数据结构

2.3位运算

3,学习与总结

3.1位运算


1,题目

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

2,代码

2.1利用map()数据结构 

使用 O(n)的空间

/*** @param {number[]} nums* @return {number}*/
var singleNumber = function(nums) {// 建立哈希表let hashtable = new Map();for(let num of nums){if(!hashtable.has(num)){hashtable.set(num,1);}else{hashtable.set(num,hashtable.get(num)+1);}}for(let [num, count] of hashtable){if(count === 1){return num;}}};

2.2利用Set()数据结构

使用 O(n) 的空间

/*** @param {number[]} nums* @return {number}*/
var singleNumber = function(nums) {// 建立哈希表let hashtable = new Set();for(let num of nums){if(hashtable.has(num)){hashtable.delete(num);}else{hashtable.add(num);}}// 此时 set 中只剩下唯一出现一次的元素,返回它//  要返回一个数值 不是values()迭代器对象,// 取其值返回return hashtable.values().next().value;
};

2.3位运算

数组中的全部元素的异或运算结果即为数组中只出现一次的数字;

  • 时间复杂度:O(n),其中 n是数组长度。只需要对数组遍历一次。

  • 空间复杂度:O(1)

/*** @param {number[]} nums* @return {number}*/
var singleNumber = function(nums) {let single = 0;for(let num of nums){single ^= num;}return single;
};

3,学习与总结

3.1位运算

  1. 第一反应是用hash表,hash表肯定是可以搞定的,但是空间复杂度是 O(n),不满足题意。接着开始思考,如何才能做到空间复杂度是 O(1)呢?
  2. 异或运算有以下三个性质:作者:力扣官方题解
  • 任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。
  • 任何数和其自身做异或运算,结果是 0,即 a⊕a=0。
  • 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

勉励自己:贵在坚持!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字图像处理—python

pycahem终端也可以下载库,我只会用终端下载,用的镜像网站 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple. pip install matplotlib -i https://pypi.tuna.tsinghua.edu.c…

GO: 快速升级Go版本

由于底层依赖升级了,那我们也要跟着升,go老版本已经不足满足需求了,必须要将版本升级到1.22.0以上 查看当前Go版本 命令查看go版本 go version[rootlocalhost local]# go version go version go1.21.4 linux/amd64 [rootlocalhost local]# …

RHCE——一、OpenEuler22.03安装部署及例行性任务

RHCE 一、OpenEuler22.03安装部署及例行性任务 一、网络服务1.准备工作2、RHEL9操作系统的安装部署3、配置并优化OpenEuler22.034、网络配置实验:修改网络配置 二、例行性工作1、 单一执行的例行性任务:at(一次性)at命令详解 2、循…

学习笔记。。。

1.字符串的拼接 1.sprintf() 往字符串的前面或中间、后面拼接一个字符串。 2.strncpy()用来复制字符串的前n个字符 //dest为目标数组,src为源数组,n为要复制的字符个数 2.char* My_strncpy(char* dest, const char* src, int n) 3.char *strcat(ch…

知名比特币质押协议项目Babylon确认参加Hack.Summit()2024区块链开发者大会

Babylon项目已确认将派遣其项目代表出席2024年在香港数码港举办的Hack.Summit()2024区块链开发者大会。作为比特币生态的领军项目,Babylon积极参与全球区块链领域的交流与合作,此次出席大会将为其提供一个展示项目进展、交流技术与创新思路的重要平台。B…

【数据库-黑马笔记】基础-SQL

本文参考b站黑马数据库视频,总结详细全面的笔记 ,可结合视频观看1~26集 MYSQL 的基础知识框架如下 目录 一、MYSQL概述 1、数据库相关概念 2、MYSQL的安装及启动 二、SQL 1、DDL【Data Defination】 2、DML【Data Manipulation】 ①、插入 ②、更新和删除 3、 DQL【Data…

理解文件系统

个人主页:Lei宝啊 愿所有美好如期而遇 磁盘 磁盘的机械构成 磁盘的物理存储 每个磁盘的盘面,磁头,扇面,扇区都有唯一的编号,同时,一个扇区的大小是512字节(扇区的大小也有4KB的,或…

【C++庖丁解牛】模版初阶

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1. 泛型编程2. 函数模…

ssGSEA -- 学习记录

文章目录 biref统计学原理其他注意事项代码实现部分 biref 前情提要链接: https://blog.csdn.net/jiangshandaiyou/article/details/136536349 https://blog.csdn.net/jiangshandaiyou/article/details/134457515 相比起GSA,GSEA不再关注于差异基因&…

打卡--MySQL8.0 一(单机部署)

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! MySQL 8.0 简介 MySQL 8.0与5.7的区别主要体现在:1、性能提升;2、新的默认…

【C++】三大特性之继承

1 继承的概念及定义 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展、增加功能,这样产生新的类,称派生类(或子类)。而被继承的…

.NetCore6.0实现ActionFilter过滤器记录接口请求日志

文章目录 目的实现案例:一.首先我们新建一个WebApi项目二.配置 appsettings.json 文件,配置日志存放路径三.创建 Model 文件夹,创建AppConfig类和ErrorLog类1.在AppConfig类中编写一个GetConfigInfo方法获取配置文件中的值2.在ErrorLog类中&a…

磁盘无法访问?别慌,这里有解决之道!

电脑中,那块储存着重要文件与数据的磁盘,突然之间无法访问,是不是让你感到惊慌失措?面对这样的突发状况,很多人可能会感到手足无措。但别担心,本文将为你解析磁盘无法访问的原因,并提供实用的数…

全志D1s开发板裸机开发之坏境搭建

环境搭建 开发板介绍 张天飞老师编写的《RISC-V体系结构编程与实践》,里面的源码是基于 QEMU 模拟器的,可以认为它是一款虚拟的开发板。如果需要在真实开发板上学习,可以使用百问网的 DongshanPI-D1S 开发板。 DongshanPI-D1S 是百问网推出…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

【脚本玩漆黑的魅影】寂雨镇全自动练级

文章目录 原理全部代码 原理 老样子。 治疗路径&#xff0c;练级路径。 def zhi_liao(): # 去治疗walk(RIGHT)walk(RIGHT)press(UP, 0.4)for i in [1, 2, 3, 4]:press(A)for i in [1, 2, 3, 4]:press(B)press(DOWN, 0.4)press(LEFT) def chu_qu(): # 右逛c.press(B)press(…

分类算法(Classification algorithms)

逻辑回归(logical regression&#xff09;&#xff1a; 逻辑回归这个名字听上去好像应该是回归算法的&#xff0c;但其实这个名字只是在历史上取名有点区别&#xff0c;但实际上它是一个完全属于是分类算法的。 我们为什么要学习它呢&#xff1f;在用我们的线性回归时会遇到一…

ABA关键词选品,大卖成功打造亚马逊爆款的秘密武器

做亚马逊新手在产品方面容易出现的问题&#xff08;都说跨境7分靠选品&#xff0c;3分靠运营&#xff0c;如果品没选对&#xff0c;直接掉坑里&#xff09;&#xff1a; 比较盲目的上产品&#xff0c;没有进行详细的市场调研&#xff08;如目标市场&#xff0c;国情以及受众分析…

【黑马程序员】STL实战--演讲比赛管理系统

文章目录 演讲比赛管理系统需求说明比赛规则程序功能 创建管理类功能描述创建演讲比赛管理类 菜单功能添加菜单成员函数声明菜单成员函数实现菜单功能测试 退出功能添加退出功能声明退出成员函数实现退出功能测试 演讲比赛功能功能分析创建选手类比赛成员属性添加初始化属性创建…

spring boot 2.4.x 之前版本(对应spring-cloud-openfeign 3.0.0之前版本)feign请求异常逻辑

目录 feign SynchronousMethodHandler 第一部分 第二部分 第三部分 spring-cloud-openfeign LoadBalancerFeignClient ribbon AbstractLoadBalancerAwareClient 在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 因为从 spring …