当前位置: 首页 > news >正文

网站开发软件中文版济宁网架公司

网站开发软件中文版,济宁网架公司,河南省城乡住房建设厅网站,厦门市建设局网站题目描述: 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 &#…

题目描述:

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

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

示例 1 :

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

示例 2 :

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

示例 3 :

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

提示:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

通过次数

975.3K

提交次数

1.3M

通过率

72.8%

思路和题解:

思路一:暴力枚举:

每次从数组中取出一个数,然后从剩余的数中查找,如果找不到就说明这个数只出现一次。时间复杂度O(n^2),空间复杂度O(1),时间复杂度不符合要求

思路二:排序

数组中只有一个数出现了一次,其余都出现了两次,可以先将数组排序,然后再遍历一次数组,如过某个数字和前面的数后面的数都不想等,那就是只出现一次的数。时间复杂度O(nlog n),空间复杂度O(1),空间复杂度符合条件,时间复杂度不知道不知道算不算线性。

思路三:建立映射表

建立一个map,遍历每一个数字,遍历时查找有无该数对应的键,如果有就删除,如果无就加入,遍历完后剩下的那个就是只出现一个的数。

思路四:位运算

先将要返回的数字ans设为0,ans依次与数组里的每一个数进行按位异或运算,由于异或运算是可交换的,运算完成后,出现两次的数会因为每一位都相同而变为0,出现一次的数和0进行异或位运算而保留下来。时间复杂度O(n),空间复杂度O(1),都符合要求。代码:

class Solution{
public:int singleNumber(vector<int>& nums){int ans=0;for(int i=0;i<nums.size();i++)ans^=nums[i];return ans;}
};

http://www.yayakq.cn/news/44645/

相关文章:

  • 东莞快速做网站北京 外贸网站建设
  • 不用ftp做网站陕西省建设网证件查询
  • 华山论剑西凤酒网站建设南京制作网页学校
  • 专门做10s视频的网站互联网广告投放代理公司
  • 宜昌教育云网站建设河南住房和城乡建设厅网站资质
  • 襄阳大摩网站建设竞价托管一般多少
  • 优化建站seo门户长春电商网站建设报价
  • 上海大学生兼职做网站价格低性价比高的手机
  • 网站导航做多大合肥网站营销推广
  • dw做的网站怎么去掉用dw制作网站模板下载地址
  • 漯河市郾城区网站建设百度分享wordpress
  • h5技术网站邯郸建设网站的公司哪家好
  • 襄阳营销型网站jsp网站开发中常见问题
  • 上海协会网站建设wordpress 热门用户
  • discuz是什么网站程序佛山网络设计
  • 做企业云网站的企业邮箱wordpress写文件到磁盘失败
  • 自由室内设计师接单网站做o2o平台网站需要多少钱
  • 河池网站建设文具网站建设理念
  • 广东网站seo营销企业网站维护服务
  • h5手机网站模板下载北京国税局网站做票种核定时
  • 西安网站建设推广公司做音乐网站建设的开发平台
  • 上传文件到网站根目录云南省建设工程招标投标行业协会网站
  • 重庆电子网站建设岳阳市官网
  • 风景旅游网站建设的设计思路微信怎么开团购卖东西
  • 长沙住建信息中心网站低价网站建设要多少钱
  • 购物网站怎么创建建设银行网站 无法访问
  • 长安做网站视频短视频api
  • 上海网站建设费用广元建设公司网站
  • wordpress做x站主题贪玩游戏原始传奇官网
  • 谷歌外贸网站绵阳网站推广排名