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

建设一个公司网站多少钱深圳防疫最新情况实时

建设一个公司网站多少钱,深圳防疫最新情况实时,农产品销售平台,网站建设找哪家好题目 输入一个整数数组,数组中只有一个数字出现了一次,而其他数字都出现了3次。请找出那个只出现一次的数字。例如,如果输入的数组为[0,1,0,1,0,1,100],则只…

题目

输入一个整数数组,数组中只有一个数字出现了一次,而其他数字都出现了3次。请找出那个只出现一次的数字。例如,如果输入的数组为[0,1,0,1,0,1,100],则只出现一次的数字是100。

分析

这个题目有一个简化版的类似的题目“输入数组中除一个数字只出现一次之外其他数字都出现两次,请找出只出现一次的数字”。任何一个数字异或它自己的结果都是0。如果将数组中所有数字进行异或运算,那么最终的结果就是那个只出现一次的数字。
在这个题目中只有一个数字出现了一次,其他数字出现了3次。相同的3个数字异或的结果是数字本身,但是将数组中所有数字进行异或运算并不能消除出现3次的数字。因此,需要想其他办法。
一个整数是由32个0或1组成的。我们可以将数组中所有数字的同一位置的数位相加。如果将出现3次的数字单独拿出来,那么这些出现了3次的数字的任意第i个数位之和都能被3整除。因此,如果数组中所有数字的第i个数位相加之和能被3整除,那么只出现一次的数字的第i个数位一定是0;如果数组中所有数字的第i个数位相加之和被3除余1,那么只出现一次的数字的第i个数位一定是1。这样只出现一次的任意第i个数位可以由数组中所有数字的第i个数位之和推算出来。当我们知道一个整数任意一位是0还是1之后,就可以知道它的数值。

public class Test {public static void main(String[] args) {int[] nums = {0, 1, 0, 1, 0, 1, 100};int result = singleNumber(nums);System.out.println(result);}public static int singleNumber(int[] nums) {int[] bitSums = new int[32];for (int num : nums) {for (int i = 0; i < 32; i++) {bitSums[i] += (num >> (31 - i)) & 1;}}int result = 0;for (int i = 0; i < 32; i++) {result = (result << 1) + bitSums[i] % 3;}return result;}
}
http://www.yayakq.cn/news/889292/

相关文章:

  • 论述网站建设的主要内容上海网站建设 方案
  • 网站制作手机网站wordpress没有登录口
  • 惠州网站制作找哪家优惠券 wordpress
  • 深圳网站seo 乐云践新点击精灵seo
  • 企业网站备案网址商标设计logo软件
  • 电商网站做导购网站建设咨询什么
  • 小米路由做网站服务器多语言网站 自助
  • 建个视频网站多少钱罗定市城乡建设局网站
  • 吕梁市建设局网站为什么检测行业不能用网站做
  • 做英文题的网站网站备案多少岁可以做
  • 玛纳斯县住房和城乡建设局网站简短的软文范例
  • 怎么用域名做邮箱网站天猫关键词排名怎么控制
  • 英雄联盟网站模版海门市城乡建设局网站
  • 四川省建设勘察设计网站济南特大最新消息
  • 网站开发适合女生干吗网红营销概念
  • 网站关键词几个好网站如何做好内链
  • 网站建设摊销几年唐山哪里建设网站好
  • 建一个门户网站如何做视频网站 需要注意的地方
  • 海兴做网站阿里巴巴开通诚信通后网站怎么做
  • 怎么做企业网站建设百度账号登录入口
  • 网站做优化有什么用吗网站后台插件
  • 网站关键词词库怎么做wordpress分类目录样式
  • 黄冈网站推广软件有哪些娄底网站建设方案
  • 网站建设咨询有客诚信网站建沈阳市网站建设
  • 花都低价网站建设深圳凡科网站建设
  • 怎样在外管局网站做延期付款湖南平台网站建设公司
  • 做网站推广需要做什么做效果图网站
  • 浙江省网站备案注销申请表上海速恒网络科技有限公司
  • 山东省建设厅官方网站怎么样用别的域名给网站做竞价
  • 制作网站的公司哪家比较好网页制作工具可分为哪两大类