JZ011 0和1個數相同的子陣列

2022-10-10 22:24:25 字數 598 閱讀 4226

title: 0和1個數相同的子陣列

這道題是不是看起來感覺和jz010有點像,又有點不像?像是因為都是子陣列,而不像因為並沒有是要求和為多少,而是要子陣列內0、1數量相同。

那麼,如果將0 換成-1,是不是即是求子陣列和為k的題目?(這裡k為0);

怎麼想得到:因為題目說是連續子陣列,那麼就想到如果答案是乙個固定的值就好了 =》求子陣列和為k,而答案內肯定0、1數量具有對稱性,將0換成-1不就可以了嘛;

字首和 + 雜湊表

此題雜湊表裡key存字首和,value存字首和的下標(因為要通過下標求長度),其他和上一題一樣,還有注意一點當雜湊表裡找不到pre - 0 的值才存到雜湊表裡面,為什麼遍歷到後面的pre有相同的不存:因為存了的話再往後 下乙個相同的pre 對應的起始點往後移了,長度縮小,我們肯定是希望越前面越好,所以只用存第一次!

class solution 

return res;}};

求乙個數中1的個數

碰到遇到乙個有趣的題,求乙個數二進位制的表示中1的個數,該題有兩種解法,一種是使用短除法將該數直接轉化為二進位制數,另一種比較巧妙的演算法是使用與運算,原理如下圖所示 依照此種思入有如下演算法 int numberof1 solution3 int i return count 依照短處法的思路 有...

乙個數 幾個數的和

斐波那契資料眾所周知如下 現在給出乙個整數n,請找出n是否可以表示為幾個斐波那契數的總和,這樣總和不包含任何兩個連續的斐波那契數。輸入 多個測試用例,第一行是乙個整數t t 10000 表示測試用例的數量。每個測試用例都是乙個整數n 1 n 109 的行。產量 每箱一行。如果答案不存在,則輸出 1 ...

計算乙個數中1的個數 0的個數

1.求乙個int數二進位制中1的個數 1 與1 右移 正數 負數都可以 計算的是負數補碼中1的個數 inta cin a int count 0 int n sizeof int 8 位數for int i 0 i a 1 右移一位 cout 2 右移相當於除以2 判斷最低位可用2取餘 右移可用除以...