二叉樹相關性質:
計算機中的數在內存中都是以二進制形式進行存儲的 ,而位運算就是直接對整數在內存中的二進制位進行操作,因此其執行效率非常高,在程序中盡量使用位運算進行操作,這會大大提高程序的性能。
需要掌握的內容:
典型題例:
輸入一個 32 位整數,輸出該數二進制表示中 1 的個數。
示例 :
輸入:9
輸出:2
解釋:9的二進制表示是1001,一共有2個1。
輸入:-2
輸出:31
解釋:-2在計算機里會被表示成11111111111111111111111111111110,
一共有31個1。
思路
核心:
代碼:
class Solution {public:
int NumberOf1(int n) {int res = 0;
unsigned int un = n;
while (un) res += un & 1, un >>= 1;
return res;
}
};
不用加減乘除做加法典型題例:
寫一個函數,求兩個整數之和,要求在函數體內不得使用 +、-、×、÷ 四則運算符號。
示例 :
輸入:num1 = 1 , num2 = 2
輸出:3
思路
代碼:
class Solution {public:
int add(int num1, int num2){while(num2){int sum = num1^num2; //不進位加法
int carry = (num1 & num2)<< 1; //進位
num1 = sum; //更新num1
num2 = carry; //更新num2
}
return num1;
}
};
充電站
推薦一個零聲學院免費公開課程,個人覺得老師講得不錯,分享給大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK等技術內容,立即學習
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
新聞標題:劍指offer常見題-位運算問題(二)-創新互聯
瀏覽路徑:http://m.newbst.com/article2/cejhic.html
成都網站建設公司_創新互聯,為您提供外貿建站、網頁設計公司、用戶體驗、移動網站建設、面包屑導航、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯