『ACM-算法-lowbit』算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位
生活随笔
收集整理的這篇文章主要介紹了
『ACM-算法-lowbit』算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
寫在前面:我們主要還是分享算法的模板,而不是去刨析算法的原理!
主要思想是,對于非負整數(shù)n,輸出n最低位的1所在位,并不斷把n賦值成n-(n&-n),直至n=0。
為了提高效率,我們使用Hash代替取log,并且利用一個數(shù)學技巧:對于任意在[0,35]中的k,2^k%37互不相等,且恰好取遍整數(shù)1~36。
其他兩種實現(xiàn):
int lowbit(int x) {return x&(-x); }int lowbit(int x) {return x&(x^(x-1)); }總結
以上是生活随笔為你收集整理的『ACM-算法-lowbit』算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现金支票的11项用途
- 下一篇: 眼镜上市公司有哪些