位運算相關 及 268 丟失的數字

2022-09-10 06:36:08 字數 1085 閱讀 8900

位運算

位運算即 先將數字 轉化為 二進位制下的表示,再進行邏輯操作,具體運算有

按位與 &

按位或 |

按位異或 ^

按位取反 ~

左移<<

右移》>>:帶符號右移。正數右移高位補0,負數右移高位補1。

>>>:無符號右移。無論是正數還是負數,高位通通補0。

<<< 與<< 之間的區別也是如此

268. 丟失的數字描述給定乙個包含[0, n]n個數的陣列nums,找出[0, n]這個範圍內沒有出現在陣列中的那個數。

鏈結

268. 丟失的數字 - 力扣(leetcode) (leetcode-cn.com)

解法:二進位制,

具體而言就是

1、 相同數字的異或為 0     a^a=0

2、 任何數字和0異或都是它自己本身   a^0 = a

從而從 0~n之間進行 ^ 異或操作,缺失的數字 只能 和 0 進行異或,從而 得到的是 本身

1

//登入 algomooc 官網獲取更多演算法**2//

4class

solution

2324

//missing 就是那個丟失的數字,返回就行

其他詳細可見

位運算基礎知識_algomooc演算法慕課網

268 丟失的數字

給定乙個包含 0,n 中 n 個數的陣列 nums 找出 0,n 這個範圍內沒有出現在陣列中的那個數。高階 你能否實現線性時間複雜度 僅使用額外常數空間的演算法解決此問題?示例 1 輸入 nums 3,0,1 輸出 2 解釋 n 3,因為有 3 個數字,所以所有的數字都在範圍 0,3 內。2 是丟失...

Leecode no 268 丟失的數字

package leecode 丟失的數字 author tang 給定乙個包含 0,n 中 n 個數的陣列 nums 找出 0,n 這個範圍內沒有出現在陣列中的那個數。你能否實現線性時間複雜度 僅使用額外常數空間的演算法解決此問題?public class missingnumber int ar...

力扣日記 268 缺失數字 位運算

給定乙個包含 0,1,2,n 中 n 個數的序列,找出 0 n 中沒有出現在序列中的那個數。示例 1 輸入 3,0,1 輸出 2 示例 2 輸入 9,6,4,2,3,5,7,0,1 輸出 8 說明 你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?class solution def ...