其他題目記錄

2021-10-09 09:21:14 字數 1429 閱讀 7806

當乙個數為2的n 次方時,整個二進位制數,只有本位是1 其他位為0,如果我們給這個數減一,那麼本位變為0 其他位全部變成1;我們可以通過&運算, 如果為0即為2的n次方;

def is2n(self, n):

if n == 0:

return true

res = n & (n-1)

return res==0

或者直接通過:

return bitset<32>(n).count() == 1
就可以檢測

a=a+b;

b=a-b;

a=a-b;

根據以上分析,把100分成6個一組,餘數是幾,我就先拿幾個,

100÷6=16(組)…4(個)

先拿4個,他拿1~5中的n個,我拿6-n,依此類推,保證我能得到第100個桌球。

先手必勝類題目,leetcode上面有很多:

leetcode第 292 題:nim遊戲(c++)_zj-csdn部落格

leetcode 第 1025 題:除數博弈(c++)_zj-csdn部落格

位運算:

//位運算應用

#include #include using namespace std;

typedef long long ll;

const int maxn = 1e5 + 10;

int n;

int a[maxn];

void found()

兩層for迴圈,比如:

第一層異或:123345

第二層異或:12345

總的來說,只有3出現了3次,其他的都是兩次

有點像leetcode第 268 題:缺失數字(c++)_zj-csdn部落格

採用2-bitmap(每個數分配2bit,00表示不存在,01表示出現一次,10表示多次,11無意義)進行,共需記憶體2^32 * 2 bit=1 gb記憶體,還可以接受。然後掃瞄這2.5億個整數,檢視bitmap中相對應位,如果是00變01,01變10,10保持不變。所描完事後,檢視bitmap,把對應位是01的整數輸出即可。

1-(1-p)^3

問題:有一棟100層高的大樓,給你兩個完全相同的玻璃球。假設從某一層開始,丟下玻璃球會摔碎。

那麼怎麼利用手中的兩個球,用什麼最優策略知道這個臨界的層是第幾層?

100層高的大樓,丟玻璃球的問題_其實我也有夢想-csdn部落格

這個解析說的挺好了。

知乎:有哪些令人拍案叫絕的演算法? - 知乎

關鍵點在於均勻。

大小端_hgxy123的部落格-csdn部落格

#include #include using namespace std;

int main()

LeetCode 其他題目記錄

104.maximum depth of binary tree 和111很像,只是遞迴的結構略有不同,可簡單畫圖分析,求最大深度可以直接返回1 max 左子樹深度,右子樹深度 但是求最小深度時不可以,需要分別考慮左右子樹為空的情況。可以舉個反例子,比如,單斜樹。1 class solution 7...

其他題目 設計RandomPool結構

題目 設計一種結構,在該結構中有如下三個功能 1 insert key 將某個key加入到該結構,做到不重複加入 2 delete key 將原本在結構中的某個key移除 3 getrandom 等概率隨機返回結構中的任意乙個key 要求所有的操作時間複雜度都是o 1 基本思路 對每個元素都加上乙個...

其他題目 分糖果問題

題目 一群孩子做遊戲,現在請你根據遊戲得分來發糖果,要求如下 1 每個孩子不管得分多少,起碼分到1個糖果 2 任意兩個相鄰的孩子之間,得分較多的孩子必須多拿一些糖果 給定乙個陣列arr代表得分陣列,請返回最少需要多少糖果。例如 arr 1,2,2 糖果分配 1,2,1 即可滿足要求且數量最少,所以返...