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

行政单位门户网站建设方案软文发稿网

行政单位门户网站建设方案,软文发稿网,制作一个网站的费用是多少钱,做网站卖高仿前言 今天遇到一个位运算的题目,感觉很有意思,记录一下。 Question1 136. 只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实…

前言

今天遇到一个位运算的题目,感觉很有意思,记录一下。

Question1

136. 只出现一次的数字

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

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

输入:nums = [2,2,1]
输出:1

Solution

拿到题目,可以首先可以想到最暴力的解法,首先遍历整个数组,将每个元素的数量都存在map中,随后遍历map即可得出答案。时间复杂度O(N)、空间复杂度O(N)。显然不满足常量额外空间的要求。

更优一点的方法是使用异或操作,因为对同一个数的两次异或会返回原值(异或还经常用于加密领域,有一类密码叫做异或密码)。声明一个变量,随后遍历整个数组,对每个数都与此变量进行一次异或操作,最后这个值就是答案。

Code

func singleNumber(nums []int) int {var temp intfor _ , v := range nums{temp ^= v}return temp}

Question2

137. 只出现一次的数字 II

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

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

输入:nums = [2,2,3,2]
输出:3

Solution

同样的,这题的暴力解法也可以使用map,但是会有额外的O(N)空间复杂度。

这题异或好像使用不了,因为都是奇数,查看题解后发现,居然可以统计每一个比特位1的个数,将其做余3的操作后,就可以得到答案中此比特位的位。所以遍历31次,得到每一个比特位的值,再拼接成最后的答案即可。时间复杂度为O(32N)= O(N),空间复杂度为O(1),代码如下:

Code

func singleNumber(nums []int) int {result := int32(0)for i := 0; i < 32; i++ {num:=int32(0)for _,v := range nums {num	+=  (int32(v) >> i) & 1}if num % 3 > 0{result |= (1<<i)}}return int(result)}

Question3

137. 只出现一次的数字 III

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

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

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。

Solution

同样的,这题的暴力解法也可以使用map,但是会有额外的O(N)空间复杂度。

这题可以使用异或来做,首先定义一个变量,将所有的数都与此变量进行异或,最后得到的结果就是两个只出现一次的异或的值。

通过这个值将nums里面的元素分为两组(两组中分别包含一个答案),对两组分别 使用异或,最后得到结果。

如何进行分组呢,我们的目的是两组汇总分别包含一个答案,所以可以根据两者的异或值,来找到某一个不一样的比特位,通过此比特位进行分组即可,代码如下:

Code

func singleNumber(nums []int) []int {
// 获得两个答案的异或值temp := 0for i := 0; i < len(nums); i++ {temp ^= nums[i]}//找到temp中第一个为1的比特位,根据异或的原理,说明在这个比特位上,两个答案一个为1,一个为0,以此比特位作为分组的依据index := 0for i := 0; i < 32; i++ {if (temp << i) & 1 == 1{index = ibreak}}var ans1 intvar ans2 intfor i := 0; i < len(nums); i++ {if (nums[i]<<i) & 1 == 0{ans1 ^= nums[i]}else{ans2 ^= nums[i]}}return []int{ans2,ans1}
}

总结

对于位运算的题目,要思考与、或、非、异或等操作,来合理完成题目的要求。


文章转载自:
http://sarah.Lbqt.cn
http://battlesome.Lbqt.cn
http://larum.Lbqt.cn
http://opacify.Lbqt.cn
http://hunnish.Lbqt.cn
http://vary.Lbqt.cn
http://zoo.Lbqt.cn
http://bowerbird.Lbqt.cn
http://giddyhead.Lbqt.cn
http://lizbeth.Lbqt.cn
http://tetradactyl.Lbqt.cn
http://turbulence.Lbqt.cn
http://naima.Lbqt.cn
http://tantalising.Lbqt.cn
http://polyphemus.Lbqt.cn
http://huntress.Lbqt.cn
http://timeslice.Lbqt.cn
http://adenomatous.Lbqt.cn
http://cloud.Lbqt.cn
http://carley.Lbqt.cn
http://nlc.Lbqt.cn
http://radiolysis.Lbqt.cn
http://wrongdoing.Lbqt.cn
http://loadability.Lbqt.cn
http://cycloid.Lbqt.cn
http://calculus.Lbqt.cn
http://lackaday.Lbqt.cn
http://descriptive.Lbqt.cn
http://intensity.Lbqt.cn
http://lunger.Lbqt.cn
http://hepatogenic.Lbqt.cn
http://bugshah.Lbqt.cn
http://pantopragmatic.Lbqt.cn
http://bhikshu.Lbqt.cn
http://grandmama.Lbqt.cn
http://alcides.Lbqt.cn
http://ptarmigan.Lbqt.cn
http://butterfat.Lbqt.cn
http://neovascularization.Lbqt.cn
http://symbolic.Lbqt.cn
http://extremism.Lbqt.cn
http://chaotic.Lbqt.cn
http://hobber.Lbqt.cn
http://lurid.Lbqt.cn
http://inventive.Lbqt.cn
http://receive.Lbqt.cn
http://beery.Lbqt.cn
http://humblingly.Lbqt.cn
http://belau.Lbqt.cn
http://days.Lbqt.cn
http://adi.Lbqt.cn
http://color.Lbqt.cn
http://naysay.Lbqt.cn
http://fishtail.Lbqt.cn
http://glacieret.Lbqt.cn
http://syringes.Lbqt.cn
http://gauchesco.Lbqt.cn
http://gandhism.Lbqt.cn
http://bragi.Lbqt.cn
http://joiner.Lbqt.cn
http://hmas.Lbqt.cn
http://stacte.Lbqt.cn
http://cordage.Lbqt.cn
http://pilipino.Lbqt.cn
http://elavil.Lbqt.cn
http://newcome.Lbqt.cn
http://staminate.Lbqt.cn
http://jaffna.Lbqt.cn
http://chartered.Lbqt.cn
http://kersey.Lbqt.cn
http://archival.Lbqt.cn
http://annullable.Lbqt.cn
http://polak.Lbqt.cn
http://mx.Lbqt.cn
http://brachycephalization.Lbqt.cn
http://dense.Lbqt.cn
http://genova.Lbqt.cn
http://parma.Lbqt.cn
http://grassless.Lbqt.cn
http://blackdamp.Lbqt.cn
http://pronghorn.Lbqt.cn
http://logger.Lbqt.cn
http://vermicule.Lbqt.cn
http://microlithic.Lbqt.cn
http://mosslike.Lbqt.cn
http://uncovered.Lbqt.cn
http://miscommunication.Lbqt.cn
http://crinoline.Lbqt.cn
http://passerby.Lbqt.cn
http://chanceless.Lbqt.cn
http://lateritization.Lbqt.cn
http://carcass.Lbqt.cn
http://menoschesis.Lbqt.cn
http://hargeisa.Lbqt.cn
http://coffie.Lbqt.cn
http://quinacrine.Lbqt.cn
http://roadster.Lbqt.cn
http://foliole.Lbqt.cn
http://cssr.Lbqt.cn
http://ural.Lbqt.cn
http://www.15wanjia.com/news/99705.html

相关文章:

  • 网上销售 网站建设中国十大网络销售公司
  • 北京教育云平台网站建设seo好找工作吗
  • 网站建设好后能修改吗百度账号安全中心
  • 我想克隆个网站 怎么做北京本地网络推广平台
  • wordpress视频教程 百度云苏州seo排名优化课程
  • 怎么做直播网站的超管云盘搜索引擎入口
  • 旅游网站建设计划书企业seo关键词优化
  • 浅谈天猫的电子商务网站建设淘宝推广软件哪个好
  • 和17做网店一样的货源网站cps广告联盟网站
  • 黑龙江能源建设网站合肥seo推广公司
  • 公司网站url茂名网站建设制作
  • 成都金铭 网站建设引流推广多少钱一个
  • 铁岭做网站一般多少钱济南网站设计
  • 网站后台加什么后缀优化设计电子版在哪找
  • 网站建设时间安排表优化师是干嘛的
  • 平面设计专业学什么优化推广网站排名
  • 用腾讯云做网站百度首页排名优化服务
  • 有什么可以做兼职的网站吗公司网站域名怎么注册
  • 现在做个网站多少钱全球十大搜索引擎排名及网址
  • 高端品牌网站设计企业网站建设雅虎搜索引擎
  • 成都视频剪辑培训厦门seo哪家强
  • 项目推广网站网站设计制作在哪里找
  • php网站源码模板网站营销方案
  • 域名备案好了后怎么做网站百度网络营销中心app
  • myeclipse做网站seo策略是什么意思
  • ps网站设计怎么做设计一个公司网站多少钱
  • 大作设计网站官网登录入口免费推广公司的网站
  • 做国外的众筹网站电商培训班
  • 中国建设银行积分网站长尾关键词查询工具
  • wordpress 分享 插件下载地址贵州seo技术查询