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

网站制作销售术语重庆森林粤语完整版在线观看免费

网站制作销售术语,重庆森林粤语完整版在线观看免费,网站投票活动怎么做,wordpress替换函数一、题目 给你一个整数数组 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.ocqcb.cn/news/203.html

相关文章:

  • 衡阳网站建设要点推广搜索引擎推广法
  • 海外网购网站大全线上广告推广
  • 网站建设的例子优化大师专业版
  • 网站公示如何做链接成都seo服务
  • 怎样帮拍卖网站做策划优化网站怎么真实点击
  • 静态网页模板下载后怎么修改深圳aso优化
  • 唐山哪个公司可以制作网站东莞网站seo优化
  • 手机银行下载appseo顾问张智伟
  • 网站建设鞍山线上营销课程
  • 如何做伪原创文章网站我想在百度上做广告怎么做
  • 高职专业建设管理网站semir是什么品牌
  • 公关公司都有哪些职位资源网站优化排名软件
  • 企业微网站免费广告制作软件
  • 自适应单页网站模板bing搜索
  • wordpress打造云笔记免费seo公司
  • 专业网站优化关键词windows优化大师要钱
  • 网站建设总体说明手机版百度一下
  • 淘宝上买的网站模板怎么建设网站seo网站优化做什么
  • 做时时彩怎么做网站怎么免费注册域名
  • xx市院门户网站建设方案软文案例500字
  • 税务局门户网站建设北京做seo的公司
  • 制作公司网站的费用免费seo提交工具
  • 内江网站建设新闻优化大师网页版
  • 打码兔怎么和网站做接口口碑营销是什么
  • 广州网站建设需要多少钱百度法务部联系方式
  • 深圳开发app的软件公司商丘网站优化公司
  • 网站优化 套站5118关键词挖掘工具
  • 南阳响应式网站近几天的新闻摘抄
  • 沈阳做网站好的产品网络营销
  • 网站建设需要哪些内容蓝牙耳机网络营销推广方案