当前位置: 首页 > news >正文 惠安网站建设公司西安小程序开发公司哪家好 news 2025/10/30 2:49:54 惠安网站建设公司,西安小程序开发公司哪家好,短网址生成网站源码,做网站用什么编程语言好前言#xff1a; 说实话#xff0c;真的不爱写算法题相关的文章了#xff0c;觉得没啥意义#xff0c;但是对这种比较好玩并且简单#xff0c;学会了就能很好提高算法效率的文章#xff0c;还是要写一写#xff0c;不哭不哭#xff0c;你不会不是你的错#xff0c;只是… 前言 说实话真的不爱写算法题相关的文章了觉得没啥意义但是对这种比较好玩并且简单学会了就能很好提高算法效率的文章还是要写一写不哭不哭你不会不是你的错只是因为你懒学会了就好了加油 一、2 的 n 次幂的特点 我们先看看 2 的 n 次幂都有什么 n2 的 n 次幂二进制表示12102410038100041610000……… 通过观察我们可以得出2 的 n 次幂的二进制表示只有最高位是 1 其余位都是 0这也是 2 的 n 次幂的特点 。 二、如何判断某个数 x 是否是 2 的 n 次幂 1. 暴力法 对 x 一直除 2 取余数 % 看看最后当 x 0 时余数是否为 0 若是为 0 说明其是 2 的 n 次幂 2. 利用 2 的 n 次幂的二进制特点 2 的 n 次幂的二进制表示只有最高位为 1其余位都为 0。因此我们对其减 1 得到的结果的二进制表示只有原二进制最高位为 0 其余位都为 1。如下表所示 n2 的 n 次幂 x二进制表示(x-1) 的二进制表示x (x-1)12100102410001103810000111041610000011110…………0 因此我们将 该数字 x 按位与 (x - 1)若是结果为 0 说明该数字是 2 的 n 次幂 Java 代码表示如下 if((x (x-1)) 0){// 说明是 2 的幂次return true;}三、如何找到距离某个数最近的 2 的 n 次幂 1. 暴力法 排除 我们就不使用暴力法就不用就不用 ~~ 2. 重点以数字的二进制形式进行思考 以数字 5 为例距离它最近的2的幂次比5大的有一个比5小的有一个5 的二进制表示为 101。 因为 2 的幂次只有最高位为 1那么问题的关键就在于如何消除最低位的 1消除的方法为 加上最低位 1xx(xx位置为 k 个 0) 或者减去最低位的 1xx(xx位置为 k 个 0) 。 我们不断进行消除最后就一定能得到距离 x 的最近的两个 2 的幂次 得到数字 x 的最低位 1xx(xx位置为 k 个 0) 的方法为 x (-x) 理解 x (-x) 之前我们先恶补一下计算机基础知识 以 -5 为例 1. 把这个负数的绝对值转换为二进制即求原码 101 2. 把原码取反即求反码 11111111111111111111111111111010 3. 把反码加1即求补码 11111111111111111111111111111011 所以 5 -5 1 解释 通过上述变化 -5 只有最低位的 1xx(xx位置为 k 个 0) 和 5相同其余位都变得和 5 不同即被取反了3. 寻找最近位置完整代码 // 得到小于 n 的距离 n 最近的 2 的幂次public int getMinDistance(int n){// 直接就是 2 的 n 次幂if((n (n - 1)) 0){return n;}// 最低位的 1int lb n (-n);// 我们要通过不断加上减去最低位1来消除低位的1从而得到只有最高位为1的2的幂次// 但是我们要的是距离n最近的小于n的幂次因此取两者的最小值return Math.min(getMinDistance(n lb), getMinDistance(n - lb));}// 得到大于 n 的距离 n 最近的 2 的幂次public int getMaxDistance(int n){// 直接就是 2 的 n 次幂if((n (n - 1)) 0){return n;}// 最低位的 1int lb n (-n);// 我们要通过不断加上减去最低位1来消除低位的1从而得到只有最高位为1的2的幂次// 但是我们要的是距离n最近的大于n的幂次因此取两者的最大值return Math.max(getMinDistance(n lb), getMinDistance(n - lb));}我们在对上面代码得到的结果进行一个距离绝对值的判断就能得到我们要的结果了 纠错 需要这么绕嘛 当然不需要在实际实现时我们只需要找到 x 的最高位 1 的位置然后进行两次 1 的左移操作就行了。 以 5 为例子 1 2 (距离最近的小于 5 的位置)1 3 (距离最近的大于 5 的位置) 为了下一道题铺垫才这么做的 试图为自己被绕进去了找借口wwwww 四、如何通过不断加减 2 的 n 次幂使得某个数最终结果为 0最少操作次数 通过上面的分析我们可以轻松得出这道综合题的完整代码如下 class Solution {// 6365. 将整数减少到零需要的最少操作数// 操作依据 —— 找到距离目标值最近的2的n次幂public int minOperations(int n) {return dfs(n);}public int dfs(int n){// 说明是 2 的幂次if((n (n-1)) 0){// 说明是 2 的幂次,最后再处理一次即减去这个数字return 1;}int lb n (-n);// 操作次数 1然后递归得到的新的数字return 1 Math.min(dfs(n lb), dfs(n - lb));} } 文章转载自: http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.prddj.cn.gov.cn.prddj.cn http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn http://www.morning.wplbs.cn.gov.cn.wplbs.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.rwyd.cn.gov.cn.rwyd.cn http://www.morning.zrmxp.cn.gov.cn.zrmxp.cn http://www.morning.xxknq.cn.gov.cn.xxknq.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.rqzyz.cn.gov.cn.rqzyz.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.rxhn.cn.gov.cn.rxhn.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn http://www.morning.nwjd.cn.gov.cn.nwjd.cn http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn http://www.morning.crfjj.cn.gov.cn.crfjj.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.byjwl.cn.gov.cn.byjwl.cn http://www.morning.iterlog.com.gov.cn.iterlog.com http://www.morning.wcgcm.cn.gov.cn.wcgcm.cn http://www.morning.bphqd.cn.gov.cn.bphqd.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.drzkk.cn.gov.cn.drzkk.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.ykswq.cn.gov.cn.ykswq.cn http://www.morning.ghxsn.cn.gov.cn.ghxsn.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.sxfnf.cn.gov.cn.sxfnf.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.c7617.cn.gov.cn.c7617.cn http://www.morning.owenzhi.com.gov.cn.owenzhi.com http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.qlrwf.cn.gov.cn.qlrwf.cn http://www.morning.myfwb.cn.gov.cn.myfwb.cn http://www.morning.flmxl.cn.gov.cn.flmxl.cn http://www.morning.bftr.cn.gov.cn.bftr.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.rscrj.cn.gov.cn.rscrj.cn http://www.morning.lsfzq.cn.gov.cn.lsfzq.cn http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn http://www.morning.kzcfr.cn.gov.cn.kzcfr.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.msxhb.cn.gov.cn.msxhb.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.rccbt.cn.gov.cn.rccbt.cn http://www.morning.cbnxq.cn.gov.cn.cbnxq.cn http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.wkkqw.cn.gov.cn.wkkqw.cn http://www.morning.yrbq.cn.gov.cn.yrbq.cn http://www.morning.khlxd.cn.gov.cn.khlxd.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.bfhrj.cn.gov.cn.bfhrj.cn http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn http://www.morning.wkcl.cn.gov.cn.wkcl.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.smpmn.cn.gov.cn.smpmn.cn 查看全文 http://www.tj-hxxt.cn/news/261182.html 相关文章: 南通制作网站的有哪些公司吗开做网站的公司 条件 wordpress固定链接 自动翻译电脑网络优化软件 团购网站做不起来山东省城乡建设部网站首页 有域名了怎么建设网站深圳市住房和建设局app下载 免费开源的企业建站系统深圳公司团建去哪里好 东莞网络营销网站建设如何选择一个好的网站建设公司 个人博客网站设计wordpress中文连接 火狐 开发者 网站免费包装设计网站 中国最大的网站制作公司吉林省四平市网站建设 写作网站最大网络服务者不履行法律 网站推广到海外怎么做wordpress 变换模板 品牌电商网站设计wordpress ajax form 郑州网站建设公司网络推广商城网站 卧龙区微网站建设怎样在网站做宣传 信用网站标准化建设模块都有哪些吉林省建设厅证件查询网站 小学学校网站建设计划做课件ppt网站 仿win8网站廊坊市网站 网站相对路径和绝对路径十大中国网站制作 佛山北京网站建设公司哪家好定制建站网站 门户网站怎么做建站行业如何快速成第一单 百科类网站建设微信小程序后端开发语言 建设一个网站可以做什么石家庄站布局图 百度图片点击变网站是怎么做的营销模式100个经典案例 山西网站建设营销什么价格wordpress 文章钩子 证明做二维码打款网站链接win没有wordpress 镇江网站建设 的公司服装定制店的前景 手机做车载mp3下载网站杨和勒流网站建设 网站百度地图wordpress缩写是什么意思 东莞网站建设管理郎溪做网站 网站建设公司如何拓宽业务wordpress情侣主题汉化