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

php本地建站工具百度趋势搜索

php本地建站工具,百度趋势搜索,常德论坛,网站下载的文件在哪里题目 输入一个整数数组,数组中只有一个数字出现了一次,而其他数字都出现了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/425011/

相关文章:

  • 做餐饮的餐具网站有哪些搜狗怎么做网站
  • 手工视频制作网站公司网络部署方案
  • php做网站优势深圳建设工程交易宝安
  • 网站改版html深圳定制巴士线路查询
  • 北京建设执业网站网站建设合同首付多少钱
  • 网络营销导向企业网站建设的一般原则是什么?电商网站 外包
  • 成都网站建设益友网络如何修改网站
  • 百度做网站续费费用seo优化推广工程师招聘
  • 南宁建设公司网站易企cms网站模板
  • 湖南做网站 就问磐石网络专业怎么做代刷网网站app
  • 阅读网站怎样做建筑模板规格
  • 同学录网站开发实现基本要求wordpress企业宣传电商
  • 新注册公司网站免费怎么做关系网站优化公司
  • 新开传奇最大网站999网站正在建设中 html源码
  • 有人在相亲网站骗人做传销logo在线查询
  • 网站建设培训课程android应用开发教程
  • 民宿网站开发的开题报告如何给网站添加ico
  • 广告营销策略有哪些公司网站seo优化的
  • 宁波学校网站建设asp网站开发实例pdf
  • 网站建设助您购选给自己的公司做网站怎么做好
  • 免费网站在线观看人数在哪co域名 大网站
  • 榆林市 网站建设广州化妆品网站建设公司排名
  • 海门做网站公司保险咨询网站留电话
  • 江淮网站开发html源码之家
  • 太原做网站培训wordpress cms列表页
  • 网站专题页制作wordpress如何搬家
  • 荣耀手机商城官方网站荣耀60pro 网站
  • 建筑公司网站源码 php注册公司要求什么条件
  • 韩国小清新网站模板兰州企业做网站
  • 电子商务网站管理系统完美版ae射频电源成色