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

番禺制作网站企业洛阳制作网站公司

番禺制作网站企业,洛阳制作网站公司,旅游电子商务网站建设调查问卷,国外建站网1、137 只出现一次数字|| 1、题目描述 137 只出现一次数字||https://leetcode.cn/problems/single-number-ii/description/ 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你…

1、137 只出现一次数字||

        1、题目描述

137 只出现一次数字||https://leetcode.cn/problems/single-number-ii/description/

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

 

        2、算法思路

        -2^{31} \leq \text{nums}[i] \leq 2^{31} - 1,所有我们只需要给一个32的空间,并且用一个表示符号位就可以。

        并且统计每个位置上的1是否是3的倍数,不是的话那个 i 位置上就是1

        用a[i]表示a第i个位置的元素,n=nums.length-1,x表示有n个数的第i个位置是上1

itotal结果
313n个0+a[i]%3a[i]
303x个1+a[i]%3a[i]
........3(n-x)个0+3x个1+a[i]%3a[i]
03(n-x)个0+3x个1+a[i]%3a[i

        3、算法代码

class Solution {public int singleNumber(int[] nums) {int ans = 0;for(int i=0;i<32;++i){int total = 0;for(int num:nums){total +=((num >>i) &1);}if(total % 3 != 0){ans |= (1 <<i);}}return ans;}
}

        4、结果运行

2、260只出现一次数字|||

        1、题目描述

260. 只出现一次的数字 III - 力扣(LeetCode)https://leetcode.cn/problems/single-number-iii/description/

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

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

        2、算法思路

  • 先得出a^b=temp
  • temp不可能是0,所有肯定a和b是最少有一个地方不一样,因为是异或,所有temp出现1的地方就是a和b的差别
  • 找出第temp数的第diff个位置是1的地方,就可以知道a和b的第diff个位置的元素不一样,肯定是一个diff位置是0,另一个就是1
  • 把数组中的元素的第diff位置为1的地方放在ret[1],并且给他们异或,因为有2个相同的元素可以刚刚好消除掉,剩下的放入ret[0]也是进行异或操作

        3、算法代码

class Solution {public static int[] singleNumber(int[] nums) {//1、先把所有的数字异或在一起,然后得出 a^b=tempint temp = 0;for (int x:nums) temp ^= x;//找出temp一个位置是1的地方int diff = 0;while (true){if (((temp >> diff) & 1)==1) break;else diff++;}//然后把第diff位的为1的放在一个ret[1],第diff位置为0反在ret[0]然后全部都异或剩下的就是需要返回int[] ret = new int[2];for (int x:nums){if (((x >> diff)&1)==1)ret[1] ^=x;else ret[0] ^=x;}return ret;}
}

        4、结果运行

3、268丢失的数字

可以看我的这篇文章

力扣热门100题【面试题01.01,268】-CSDN博客https://blog.csdn.net/EdgeAI/article/details/146182204?spm=1001.2014.3001.5501

        1、题目描述

268. 丢失的数字 - 力扣(LeetCode)https://leetcode.cn/problems/missing-number/description/给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

        2、算法代码

class Solution {public int missingNumber(int[] nums) {int ret = 0;for(int x:nums) ret ^=x;for(int i=0;i<=nums.length;i++)ret ^=i;return ret;}
}

        3、结果运行

4、面试17.19消失的两个个数字(结合260和268)

这道题目结合260和268一起做很更加简单,这就是为什么我把它放在最后。

        1、题目描述

        2、算法思路

  • 找出缺少的两个数字等到他们的异或
  • 找出他们异或的位置不一样的位置,可以是任何地方位置是1的地方,为了方便我就寻找右边第一个是1的位置
  • 并且按照题目260,只出现一次的数字||| 把他们的第diff个位置为0的异或以后放在ret[0],第diff个位置为1的异或以后放在ret[1]
  • 这个时候数字还没有抵消因为没有一样的,所以这个时候我们遍历1 到 N 所有的整数就可以抵消掉

        3、算法代码

class Solution {public int[] missingTwo(int[] nums) {//先把缺少的2个数字找出来int temp = 0;for(int x:nums) temp ^=x;for(int i=1;i<=nums.length+2;i++) temp ^=i;//目前的temp中有缺少的2个数字的异或//先找出从右往左 找出temp的第一个1int diff = 0;while(true){if(((temp >> diff)&1)==1) break;else diff++;}//按照 diff 位置的不同 把第diff位置为0的分成一部分,为1的分成一部分int[] ret = new int[2];for(int n : nums){if(((n >> diff) & 1) == 1) ret[1] ^= n;else ret[0] ^= n;}for(int i = 1; i <= nums.length + 2; i++){if(((i >> diff) & 1) == 1) ret[1] ^= i;else ret[0] ^= i;}return ret;}
}

        4、结果运行


文章转载自:

http://e0n7Q0Li.pzjrm.cn
http://0HzSQcFI.pzjrm.cn
http://iWKIh7ba.pzjrm.cn
http://NGGmnZwC.pzjrm.cn
http://mRpKfaj3.pzjrm.cn
http://k78zC7eI.pzjrm.cn
http://kjhMcLlw.pzjrm.cn
http://0ytxBwXp.pzjrm.cn
http://tVe4YbhZ.pzjrm.cn
http://jiMTY17y.pzjrm.cn
http://dXfuNnaY.pzjrm.cn
http://esxeUaK1.pzjrm.cn
http://bSVovRo5.pzjrm.cn
http://O2Z1bPqC.pzjrm.cn
http://eTYLM9vN.pzjrm.cn
http://VESJN7qM.pzjrm.cn
http://bZkHsJbO.pzjrm.cn
http://MHM0kMah.pzjrm.cn
http://1IE7fThL.pzjrm.cn
http://oV4x4JnP.pzjrm.cn
http://30ssFrk3.pzjrm.cn
http://2GPMtgCr.pzjrm.cn
http://XkHSYlX6.pzjrm.cn
http://o8neTdtX.pzjrm.cn
http://aIJjSFHQ.pzjrm.cn
http://sayzXGw3.pzjrm.cn
http://6qdy7hPj.pzjrm.cn
http://QyhRSOJU.pzjrm.cn
http://Dywlo7bL.pzjrm.cn
http://oyGij7Ur.pzjrm.cn
http://www.dtcms.com/wzjs/620378.html

相关文章:

  • 郑州哪家做网站好旅游企业网站开发
  • 免费网站的手机版本源码模板网站开发行业前景
  • 制作公司网站源代码怎么弄怎么上传网站
  • 定制制作网站哪家好网络文化经营许可证变更
  • 怎样免费做网站视频讲解自己做的网站用在博客上
  • 哈尔滨学校网站建设企业在公司做的网站遇到的问题
  • 福建住房和城建设网站培训机构需要哪些证件
  • 网站可以建几个人html编辑器代码
  • 医疗网站前置审批取消英语学习软件
  • 网站推广目标app开发流程表
  • 建设银行网站登录不进去品牌网站的建设
  • 网站底部导航栏苏州市网站制作
  • 网站显示乱码怎么办啊江苏住建厅电子证书查询
  • 网站icp备案查不到西安优秀网站设计
  • 适合翻译做兼职的网站怎么做网站劳务中介
  • 房地产做网站的意义百度在线扫一扫
  • 上虞中国建设银行官网站网站维护建设需要什么花费
  • 锦州电脑网站建设新手怎么引流推广推广引流
  • 伊利网站建设jsp网站开发 心得
  • 网站 备案网站建设的维护工作
  • wang域名建的网站石家庄模板自助建站
  • 网站建设必学课程网络推广有哪些途径
  • 如何查询网站哪个公司做的南昌做房地产用哪个网站
  • 电力建设工程最好的网站wordpress 360收录
  • 寿光公司做网站义乌市建设银行分行网站
  • 视频互动网站建设咨询网络服务商怎么弄
  • 国外网站开发文献全国企业信息系统网官网
  • 淄博天一建设项目招标代理有限公司网站郑州百度关键词seo
  • 河南做网站公司哪家好网站建立连接不安全怎么处理
  • 公司网站招聘费如何做会计分录深圳网站制作公司兴田德润电话多少