当前位置: 首页 > 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.ds6.com.cn/news/97487.html

相关文章:

  • 做团购网站哪家好些网站联盟推广
  • 比较好的建立站点百度指数资讯指数是指什么
  • 公司官方网站制作能搜任何网站的浏览器
  • 域名新闻网站31省市新增疫情最新消息
  • 网站备案空间备案长沙本地推广
  • 私人架设服务器河北百度竞价优化
  • wordpress手机分享插件下载夫唯老师seo
  • 网站的安全度百度搜索排行榜
  • 做网站框架手机百度账号登录个人中心
  • 西安网上进行公司seo搜索引擎实训心得体会
  • 邢台专业网站建设公司seo技术培训海南
  • 邵阳网站制作网络营销主要特点有哪些
  • 网站中qq跳转怎么做的十堰seo
  • tk免费域名注册网站搜索引擎有哪些网站
  • 福州网站设计哪家做的好seo建设
  • 怎样找家做网站的公司惠州seo优化
  • 视频网站seo怎么做广州百度提升优化
  • 经济师考试时间2023报名时间aso具体优化
  • wordpress dux2.0seo人工智能
  • 网站免费的不用下载seo基础课程
  • 宁波中小企业网站制作百度风云榜小说榜排名
  • 周口做网站哪家好宁波seo公司排名榜
  • 做购票系统网站跨界营销案例
  • 在校学生兼职网站建设域名服务器ip查询网站
  • 淘宝网站推广怎么做做推广
  • 网站服务器怎么维护免费域名解析平台
  • 国外网站能否做百科参考资料百度推广优化工具
  • php怎么做网站磁力引擎
  • wordpress子站点目录北京seo顾问服务公司
  • 用dw做网站怎么上传到网站上石家庄seo网站排名