2的幂从小到大有1,2,4,8... ...观察他们的二进制:1 = 1,2 = 10,4 = 100,8 = 1000......我们发现2的幂基本上都满足这样一个规律就是,这个数的二进制数都是1开头,后面m个0 我们再看一下每个2的幂次方数减...1:0 = 0,1 = 1,3 = 011,7 = 0111......我们发现正好每一位都是与2的幂的二进制相反,于是我们可以将n和n-1相&,得到的结果如果是0,就表示n是2的幂,如果不是0,他就不是...2的幂 class Solution { public boolean isPowerOfTwo(int n) { if(n <= 0) return false
题目描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: ?...= 1 示例 2: 输入: 16 输出: true 解释: ?...= 16 示例 3: 输入: 218 输出: false 解法 如果该值是 2 的幂次方,则该值的二进制位中只有一位为 1,其他位全部为 0,则有 num&(num-1)==0。
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 在真实的面试中遇到过这道题...来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-two class Solution { public: bool isPowerOfTwo
链接 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...示例 1: 输入: 1 输出: true 解释: 20 = 1 示例2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 题解 func
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...不管是2的正幂次还是2的负幂次肯定都大于0,如果n小于0可以直接返回false,2的负幂次如2^-3等价于1/2^3一定是小数,由于入参为int所以这种情况也不存在。...2的幂次 十进制形式 二进制形式 减1二进制形式 2 ^ 0 1 00000001 00000000 2 ^ 1 2 00000010 00000001 2 ^ 2 4 00000100 00000100...2 ^ 3 8 00001000 00000111 2 ^ 4 16 00010000 00001111 2 ^ 5 32 00100000 00011111 2 ^ 6 64 01000000 00111111...= 1) { if (n % 2 == 1) { return false; } n /= 2;
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 题解:...利用x*(x-1)是打掉最后一位2进制的1,所有的2的次方,转化为二进制,只可能在一位上有1特点,还需要注意,这里需要将int转为long,因为这里int是无符号的,考虑负数边界问题 class Solution
题目信息 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 来源:力扣(LeetCode...2. 解题 2的整数次幂的2进制数中只有1个1 n经过 运算 n&(n-1) 得到的数的二进制1的个数减少1个 ?...isPowerOfTwo(int n) { if(n <= 0) return false; return (n&(n-1)) == 0;//错误写法...n&(n-1) == 0 } }; 拓展:求一个数n的2进制有多少个1?
LeetCode 题库的第 231 题 —— 2 的幂 ? 这题也是比较容易的一题,前提是找到规律即可。...如果从 10 进制的角度观察 2 的幂次方,可能并不容易发现规律,那么可以从 2 进制的角度进行观察。...举例如下: 2 = 2 ^ 1 = 10 4 = 2 ^ 2 = 100 8 = 2 ^ 3 = 1000 16 = 2 ^ 4 = 10000 观察 2 进制可以看出,2 的 N...次方只有 1 个 1,其余都是 0,那么判断一个数是否为 2 的幂,可以通过位移来进行判断。...的幂,直接返回 0,num 必须要大于 1,否则直接返回 1,因为当 num 等于 1 时要么是循环结束,要么 num 本身就是 1,如果是 1 的话,就是 2 的 0 次幂。
我最初写了这样的代码:for (int i = 0; i > i) & 1) 为什么会出现错误?...0xFFFF0000):11111111 11111111 00000000 00000000反转后 (期望 0x0000FFFF):00000000 00000000 11111111 11111111正确的位反转实现我们可以这样实现...2. 我的代码为什么出错?...叠加后: 0xF50000FF (错误结果)正确做法:必须初始化 dwOutChlCtrl = 0。
Leetcode -231. 2的幂 题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。...如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。...如果n是2的幂,那么它的二进制表示肯定是只有一个1,1后面全是0,那么我们将n-1,那么它原来的1变成0,这个0后面全变成1;所以将这两个数按位与,肯定是0;不是0的话肯定不是2的幂;并且n需要大于...- 258.各位相加 题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。...返回这个结果。
背景 年底了,换了项目组,新的项目组使用react,从vue到react,我只花了一天的时间,看了官方简单的文章之后,就觉得这玩意很简单啊,比起vue的那么api来说,这根本没有学习成本好吧,十分迅速的就进入了...react的项目开发,并且洋洋得意,根据我多年的经验来看,这波肯定会得到领导的赏识 很快,我就做完了我的需求,把代码提交上去,组长可能确实比较闲,还review了我的代码,并且指出了一系列的问题,并告诉我说学习...react最难的部分,并不是知道怎么使用它,而是要知道怎么能够编写良好,干净的react代码 主要给我提了六点错误,我相信在座的各位,可能需要对号入座 在不需要使用state的时候使用state 涉及到项目中的代码逻辑...val) => { setCount((current) => current + val); setCount((current) => current + val); }; 就能够得到想要的结果...useEffect(() => { fetch('#').then(d => setData(d)) }, []) useEffect(() => { console.log(d) }, [d]) 那为什么你不把
HashMap通过哈希算法得出哈希值之后,将键值对放入哪个索引的方法 static int indexFor(int h, int length) { // assert Integer.bitCount...(length) == 1 : "length must be a non-zero power of 2"; return h & (length-1); } 假设 HashMap...的容量为16转化成二进制为10000,length-1得出的二进制为01111 哈希值为1111 ?...可以得出索引的位置为15 ---- 假设 HashMap的容量为15转化成二进制为1111,length-1得出的二进制为1110 哈希值为1111和1110 ?...那么两个索引的位置都是14,就会造成分布不均匀了,增加了碰撞的几率,减慢了查询的效率,造成空间的浪费。 总结: 因为2的幂-1都是11111结尾的,所以碰撞几率小。
今天就关于服务幂等性的一系列问题,在此将材料稍作整理,分享给大家~ 尤其在目前分布式/微服务化的今天,提供的后端服务接口,注意做好幂等性设计很有必要。 1、何为幂等性?...“ 幂等(idempotence),来源于数学中的一个概念,例如:幂等函数/幂等方法(指用相同的参数重复执行,并能获得相同结果的函数,这些函数不影响系统状态,也不用担心重复执行会对系统造成改变)。...DELETE FROM users WHERE id = 1; case2:相对值删除,重复多次结果不一致,不具备幂等性。...后续使用异步任务处理管道中的数据,过滤掉重复的请求数据。 优点:同步转异步,实现高吞吐。 缺点:不能及时返回处理结果,需要后续监听处理结果的异步返回数据。 ?...但是出于自身责任感,我还得叮嘱他几句: 1)幂等性处理 虽然复杂了业务处理,也可能会降低接口的执行效率,但是为了保证系统数据的准确性,是非常有必要的; 2)遇到问题,善于发现并挖掘本质问题,这样解决起来才能高效且精准
木又连续日更第45天(45/100) ---- 木又的第192篇leetcode解题报告 数学类型第8篇解题报告 leetcode第231题:2的幂 https://leetcode-cn.com/problems.../power-of-two/ ---- 【题目】 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。...示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 【思路】 本题较为简单...,设置一个变量等于1,不断乘以2,如果该数等于n,则返回True,否则直到该数大于n退出循环。...当然,我们可以首先判断特殊条件,避免很多计算,比如,n 2 == 1等。
为什么要保证 capacity 是2的次幂呢? 1)在get方法实现中,实际上是匹配链表中的 Node[] tab 中的数据。...2)因为 n 永远是2的次幂,所以 n-1 通过 二进制表示,永远都是尾端以连续1的形式表示(00001111,00000011) 当(n - 1) 和 hash 做与运算时,会保留hash中 后 x...- 1) & hash,当n为2次幂时,会满足一个公式:(n - 1) & hash = hash % n 2.为什么要通过 (n - 1) & hash 决定桶的索引呢?...答案是:不会的,HashMap 的tableSizeFor方法做了处理,能保证n永远都是2次幂。...尽量避免 bug 手法2、HashMap 为什么线程不安全?3、3种骚操作,教你查看 Java 字节码! 4、疯了!同事又问我为什么不能用 isXXX5、不能用 + 拼接字符串?这次我要吊打面试官!
今天讲的这个小问题,没有用过 PyCharm 的同学会完全不知所云,但用过的人,可能有一半以上概率会遇到这个算不上 bug 但也可能让人迷惑的坑。...情况就是:当你写了一段代码,点击 PyCharm 右上角的绿色小三角运行程序时,发现结果跟你预期的完全不相干。然后,无论你怎么修改代码,结果丝毫不会改变。甚至你一怒之下删光所有代码,竟然仍有输出!...其实原因也很简单:在 PyCharm里面,切换了当前编辑的 py 文件后,默认运行的代码文件是不会跟着变的。这时候用快捷键或者点运行按钮执行的都还是一开始设定的那个代码文件。 ?...新手学习经常会依次写好几个习题,于是会发生修改了代码,但执行效果没变化的情况。一来一回就把人给弄糊涂了。 一个简单的方法,就是用右键点击空白处运行代码: ?...加入码上行动答疑群(最及时响应) 2. 加入知识星球 https://t.zsxq.com/IiAiiQj 3.
在准备GEO/TCGA培训时,因为部分数据来自NCBI GEO数据库,就系统梳理了GEO数据库的结构和存储方式,顺便也看了GEO2R的使用。...然后就发现了一个问题,可能直接使用GEO2R的分析结果是错误的。 原因见下图 (官网介绍截图) ?...而GEO2R的R代码使用的是GEOquery获取GSEMatrix,所以如果我们自己写代码这样获取非原始数据时,也有可能得到的数据是不可比的。 ?...如果能基于原始数据进行分析,可以做更多的质控和更深入的比较。如果不能,分析之前看下数据的分布是否均一 (median-centered)。 从课件中截取GEO简介部分分享如下 : ?
如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。...示例 1: 输入:1 输出:true 示例 2: 输入:10 输出:false 示例 3: 输入:16 输出:true 示例 4: 输入:24 输出:false 示例 5: 输入:46 输出:true...提示: 1 <= N <= 10^9 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reordered-power-of-2 著作权归领扣网络所有...2....解题 2.1 排序 将数字转成字符串,并排序 枚举32位的所有2的次幂的数,转字符串,并排序,跟上面字符串比较即可 class Solution { public: bool reorderedPowerOf2
非常的好用,使用合适的主题和代码高亮样式可以让我们文章的调性拉满,给读者更好的阅读体验。...Markdown主题 设置主题的位置如下: 我认为主题的选择不是千篇一律的,我们可以结合自己内容的特点选择合适的主题: channing-cyan 比如:我去年年终总结的这篇主要是以叙述故事的方式写文章...不要慌,我告诉你为什么。 你要这么操作:在代码段标记上语言类型,比如:Java、Go、PHP,这样编辑器才知道按照那个语言风格来展示高亮效果。...--鲁迅说的 合理的使用加粗和引用,能帮助读者更快的捕获到重点内容,对读者非常友好 上面这段话我是这么排版的: 再好一点点 我一直深信一个原则:每天比昨天更好一点点,随着时间的沉淀,就能好很多。...除了我上面提到的这些,一定还有很多优化文章排版,提升读者阅读体验的小技巧,需要小伙伴们用心去寻找。找到后欢迎反哺我,哈哈。 长此以往,爆文一定能写出来。
HashMap中数组的长度为什么要设计成2次幂? 了解本文的前提需要你对数据结构有一定的了解,明白各种数据结构的优劣。当然如果你已经知道了HashMap底层的数据结构是数组+链表+红黑树那就更好了。...如果你还知道hashMap默认初始化的数组长度是16,且每次扩容都扩容为原长度的两倍,那么我只能说“你已经是一个合格的大佬了”。 ...我自认为自己算是一个比较喜欢刨根问底的人,“存在既有意义”这句话通常使我受益良多,但是偶尔也容易陷入死角。OK 废话不多说,转入正题。 下面是jdk1.8中HashMap的部分源码 ?...可以看出当数组的长度为16时,计算出了16个槽位并且均匀分布在数组的每一个位置,当数组长度为15时,只计算出了8个槽位,每个槽位放了一个两个节点的链表,导致了有8个槽位是空闲状态。...ps:1.7的HashMap比较简单,如果要研究HashMap源码的话建议可以先从jdk1.7入手 最后附上之前自己实现的一个简单HashMap:https://blog.csdn.net/qq_39914581