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

淘宝客网站需要备案鼓楼机关建设网站

淘宝客网站需要备案,鼓楼机关建设网站,兰州瞒报数据,网业翻译成中文一、题目 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。 示例 1: …

一、题目

给你一个整数数组 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]

二、思路解析

首先,我们可以先做个小优化:当 nums 数组长度为 2 时,说明这两个元素一定只出现了一次,直接返回即可。

然后就要利用到我们熟悉的两条公式:

x ^ x = 0 

x ^ 0 = x 

由于数组中除了两个数字之外,其他数字都出现了两次,因此我们对数组中的所有数字进行异或运算,得到的结果即为两个只出现一次的数字的异或结果。

在第三部分的代码中,我用 n1 和 n2 表示这两个数。

再对数组使用一次 lowbit 运算,目的是根据最低位的不同,把这两个只出现一次的数字分到两个不同的组。

接着我们在遍历一次数组,当有元素和 lowbit 进行或运算后还不等于零,则他就是 n1 了。

另一个只出现一次的数,就让 n1 和 Double 异或一下就出来了,因为 Double 本身就是这两个数的异或。

三、完整代码

class Solution {public int[] singleNumber(int[] nums) {if(nums.length == 2){return nums;}int Double = 0;for(int i = 0 ; i < nums.length ; i ++){Double ^= nums[i];}int n1 = 0;int lowbit = Double & -Double;for(int j = 0 ; j < nums.length ; j ++){if((nums[j] & lowbit) != 0){n1 ^= nums[j];}  }int n2 = Double ^ n1;return new int[]{n1 , n2};}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

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

相关文章:

  • 模仿网站建设网站维护工作方案
  • 京东淘宝网站是怎么做的韩国网站 后缀
  • 做摄影和后期的兼职网站德兴市网站建设服务公司
  • 学校网站建设先进事迹一般做海报的图片跟哪个网站下载
  • 门图书馆户网站建设方案jsp网站开发教学视频
  • 网站建设规划书参考模板网站域名ip地址查询
  • 网站怎么做浏览量才会多wordpress图片网站
  • 石家庄的网站建设公司哪家好有做浏览单的网站
  • 做优化网站注意什么小企业网站建设方案
  • 修改网站dns公司网站搭建流程
  • 张掖市作风建设年活动网站设计上海兼职网站建设
  • 站内seo是什么意思西安网站建设麦欧科技
  • 西安哪家公司做网站网站建设背景怎么设置成
  • 58同城做网站电影网站如何优化
  • 淄博市沂源县城乡建设局网站网站制作的要求
  • 做室内设计的网站有哪些方面湛江建网站
  • 如何跟进网站建设的客户网站自动更新文章
  • 网站建设注册成都vi设计公司
  • 网站备案备注信息wordpress 后门软件
  • 给前端做网站的图片叫什么软件廉政网站建设
  • 东莞网站建设信科steam官方网站下载
  • 做58网站怎么赚钱吗互动营销网站
  • 网站上做扫一扫自己怎么做网址开网站
  • 百度推广网站备案公司做网站要花多少钱
  • 广州 行业 网站建设重庆的网站设计公司
  • 自己做返利网站深圳网站优化多少钱
  • 网站怎么让百度收录一张图做封面网站怎么添加栏目
  • 外贸和网站制作建立网站的费用策划
  • 大学生做简历的网站学校网站的平台用途及建设规划
  • wordpress网站工具栏免费的黄页推广软件哪个好