是否正常正常是
数组-136. 只出现一次的数字
- 题目描述
- 题目样例
- Java方法:位运算
- 算法思路
- 代码
- 复杂度
题目描述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
题目样例
- 示例1:
输入: [2,2,1]
输出: 1
- 示例2:
输入: [4,1,2,1,2]
输出: 4
Java方法:位运算
算法思路
如果不考虑时间复杂度和空间复杂度的限制,这道题有很多种解法,可能的解法有如下几种。
1.使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字。
2.使用哈希表存储每个数字和该数字出现的次数。遍历数组即可得到每个数字出现的次数,并更新哈希表,最后遍历哈希表,得到只出现一次的数字。
3.使用集合存储数组中出现的所有数字,并计算数组中的元素之和。由于集合保证元素无重复,因此计算集合中的所有元素之和的两倍,即为每个元素出现两次的情况下的元素之和。由于数组中只有一个元素出现一次,其余元素都出现两次,因此用集合中的元素之和的两倍减去数组中的元素之和,剩下的数就是数组中只出现一次的数字。
上述三种解法都需要额外使用 O(n) 的空间,其中 n 是数组长度。
如何才能做到线性时间复杂度和常数空间复杂度呢?
代码
class Solution {public int singleNumber(int[] nums) {int single = 0;for (int num : nums) {single ^= num;}return single;}
}
复杂度
- 时间复杂度:O(n),只需要遍历一次。
- 空间复杂度:O(1)。
[1]:https://leetcode-cn.com/problems/single-number/solution/zhi-chu-xian-yi-ci-de-shu-zi-by-leetcode-solution/
相关文章:

pkg mysql 在macOS 上的管理
为什么80%的码农都做不了架构师?>>> 使用pkg安装后,在设置中启停,通过ps -ef|grep mysql查看进程的命令行即可看到各配置位置。 转载于:https://my.oschina.net/fox99/blog/1931674

PHP autoload 函数
(1) autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个…

sql按条件进行批量查询或update的关键字in
2019独角兽企业重金招聘Python工程师标准>>> SELECT t1.field1,t1.field2,t1.field3 from t1 where t1.pid in (select fid from t2 where t2.ch%123456%) 再看这段代码, select t.* from mefinance.me_customer_info t where t.id in (3285,4241,4243,4…

为什么很努力进步却不明显
今天有个玩的不错的同事问了我一个问题:他说我今年在努力学习测试方法,自动化测试等等,也写了不少测试用例,但总体感觉好像没有什么进步啊?他想不明白这是什么原因。其实当我遇到这个问题的时候,我也想了一…

spl_autoload_register与autoload区别
spl_autoload_register(PHP 5 > 5.1.2)spl_autoload_register — 注册__autoload()函数说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。如果在你的程序中已经实现…

宣传部vv从v
数组-136. 只出现一次的数字题目描述题目样例Java方法:位运算算法思路代码复杂度题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 题目样例 示例1: 输入: […

自动配置IPv4问题
对于 Windows , 配置 IP,如: 192.168.1.101, 如果这个 IP 已经在局域网内存在,那么将会提示局域网内已经存在该 IP。 而这个时候,Windows 7 将产生一个 “自动配置IPv4地址”,如:169…

营销自动化为什么能吸引企业的喜欢?它有何魅力?
在一次营销峰会上,我们听到这样一个令人惊讶的描述:“到2020年底,将会有85%的客户与企业的关系在没有人际互动的情况下进行管理。”虽然这听起来可能有点超前,但从营销的角度来看,“未来”已来。这个“未来”就是我们所…

php base64解码图片 base64加密图片还原
<?php//文件名:base64.php $data"/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIADIA…

python mysql
2019独角兽企业重金招聘Python工程师标准>>> python实践3:cursor() — 数据库连接操作 (2012-05-07 11:00:40) 转载▼ 标签: itpython 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe࿰…

程序员效率低下的35个坏习惯
优秀程序员与平庸程序员的最终差别其实是习惯,避开那些让自己低效的坏习惯是程序员让自己变优秀的有效途径。 1.总是说“一会弄好”,但从来不兑现。(缺乏任务管理和时间管理能力)2坚持所谓的高效、优雅的“一行代码流”࿰…

PHP处理Oracle的CLOB
1. 写入数据在使用PDO的预处理方法时,如果使用bindParam()等而不指定字段的数据类型或使用execute(),PDO都会默认为string类型,并且限定一个默认长度 所以在存clob类型字段时必须使用bindParam()或bindValue()等,并指定字符…

c# 元组Tuple
Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面。您可以将钥匙、驾驶证、便笺簿和钢笔放在口袋里,您的口袋是存放各种东西的收集箱。C# 4.0引入的一个新特性 Tuple类型与口袋类似,它可以存放不同类型的对象。CodeProject…

KVM之安装虚拟机
一、KVM安装:环境要求:1、如果是物理服务器,需要在BIOS中打开虚拟化VirtualizationTechnology一般的服务器默认是打开这个功能的。 2、如果是用VMware Workstation做实验,建立的虚拟机的CPU要勾选虚拟化功能,这样虚拟机…

使用 Strace 调试工具
strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统呼叫及它所接收的系统信息。 strace是一个有用的小工具,它可以通过跟踪系统调用来让你知道一个程序在后台所做的事情。Strace是一个基础的调试工具,在大多数Linux系 …

java——网络知识积累
1.获得局域网的所有主机ip地址 ping ip 等待每次回复的超时时间: -w 280 要发送的回显请求数:-n 1 Process processRuntime.getRuntime().exec("ping "); process.getInputStream()----InputStreamReader()----BufferReader in…

卸载v吧v字典序
数组-136. 只出现一次的数字题目描述题目样例Java方法:位运算算法思路代码复杂度题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 题目样例 示例1: 输入: […

《JavaScript高级程序设计(第3版)》教程大纲
词条 《JavaScript高级程序设计》是2006年人民邮电出版社出版的图书,作者是(美)(Nicholas C.Zakas)扎卡斯。本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。 献给搬砖人士,求职人士很不错的基础扎实笔记 前四章 js诞…

鸡肋的PHP单例模式
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。<?php /* 单例模式举例,其要点如下: * * 1. $_instance 必须声明为静态的私有变量 * 2. 构造函数和克隆函数必须声明…

彻底理解js中this
相关博文:http://blog.csdn.net/libin_1/article/details/49996815彻底理解js中this的指向,不必硬背。 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上t…

cvsdfgdfdf
数组-136. 只出现一次的数字题目描述题目样例Java方法:位运算算法思路代码复杂度题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 题目样例 示例1: 输入: […

怎样操作vue.js使用3DES加密
如何在VUE-CLI手脚架建立的工程中使用3des加密: 1npm install crypto-js --save-dev1import CryptoJS from crypto-js123456789101112131415161718192021222324252627//DES加密 Pkcs7填充方式encryptByDES(message, key){const keyHex CryptoJS.enc.Utf8.parse(key…

PHP 函数 ignore_user_abort定时执行任务的实现
ignore_user_abort 设置与客户机断开是否会终止脚本的执行。本函数返回 user-abort 设置的之前的值(一个布尔值)。int ignore_user_abort ([ string $value ] )参数描述setting可选。如果设置为 true,则忽略与用户的断开,如果设置…

echarts树图节点垂直间距_矿棉板吊顶标准工艺节点
材料探秘materials材料版块【矿棉板吊顶标准工艺】 材料探秘关键词:#吊杆与设备#吊顶龙骨#矿棉板#1 吊杆与设备相遇增加过桥节点图 ■ 本工艺管控要点◎ 顶面的水、电、风专业强制定位、预留、预埋必须全部完成,且电气穿线、测试完成并合格…

队列 queue
STL: 队列中pop完成的不是取出最顶端的元素,而是取出最低端的元素.也就是说最初放入的元素能够最先被取出(这种行为被叫做FIFO:First In First Out,即先进先出). queue:front 是用来访问最底端数据的函数. 1 #include <queue>2 #include <cstdio>3 uisng namespace…

Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...
UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的。View是绘制在屏幕上能与用户进行交互的一个对象。而对于ViewGroup来说,则是一个用于存放其他View和ViewGroup对象的布局容器! Android为我们提供了View和V…

redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了
概述Redis的文章,我之前写过一篇关于「Redis的缓存的三大问题」,累计阅读也快800了,对于还只有3k左右的粉丝量,能够达到这个阅读量,已经是比较难了。这说明那篇文章写的还过得去,收到很多人的阅读肯定&…

开源监控解决方案Nagios+Cacti+PNP4Nagios+NConf+NDOUtils+Nagvis(六)ndoutils安装
前面的文章已经说过,NDOUtils必须使用2.0的版本才支持nagios4x,比较幸运的是该版本2014年就已经发布。一.安装#tar -axf ndoutils-2.0.0.tar.gz -C /usr/local/src/#cd /usr/local/src/ndoutils-2.0.0#./configure --prefix/usr/local/nagios LDFLAGS-L/…

网络安全技术分析:DDoS的攻与防
根据墨者安全相关数据研究发现,从今年年初开始,DDoS功击的数量相比去年几乎是翻倍增长,特别是游戏、金融、政企、电商、医疗行业,更是DDoS功击的重灾区,很多企业是闻“D”色变。DDos(Distributed Denial of Service),中…

pcl求平面法向量_线性代数6——平面方程与矩阵
线性方程的几何意义二元线性方程该方程是一个二元线性方程组,包含两个方程,每个方程是一条直线,两条直线的交点就是该方程有唯一解,这就是二元线性方程的几何意义。平面方程空间内不在同一直线上的三点构成一个平面,平…