劍指Offer(十一)

2021-10-23 15:51:22 字數 2181 閱讀 5153

請定義乙個佇列並實現函式max_value得到佇列裡的最大值,要求函式max_valuepush_backpop_front的均攤時間複雜度都是o(1)。

若隊列為空,pop_frontmax_value需要返回 -1。

class

maxqueue

public

intmax_value()

public

void

push_back

(int value)

deque.

addlast

(value);}

public

intpop_front()

int value = queue.

removefirst()

;if(deque.

peekfirst()

== value) deque.

removefirst()

;return value;

}}

把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能的值出現的概率。

你需要用乙個浮點數陣列返回答案,其中第 i 個元素代表這 n 個骰子所能擲出的點數集合中第 i 小的那個的概率。

輸入: 1

輸出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]

class

solution

;for

(int i =

2; i <= n; i++)}

dp = tmp;

}return dp;

}}

從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2~10為數字本身,a為1,j為11,q為12,k為13,而大、小王為 0 ,可以看成任意數字。a 不能視為 14。

輸入: [1,2,3,4,5]

輸出: true

輸入: [0,0,1,2,5]

輸出: true

class

solution

return max - min <5;

}}

0,1,n-1這n個數字排成乙個圓圈,從數字0開始,每次從這個圓圈裡刪除第m個數字。求出這個圓圈裡剩下的最後乙個數字。

arraylist的解法,耗時1s多。

class

solution

return list.

get(0)

;}}

2、數學倒推

m = 3,

第一輪是 [0, 1, 2, 3, 4] ,所以是 [0, 1, 2, 3, 4] 。這一輪 2 刪除了。

第二輪開始時,從 3 開始,所以是 [3, 4, 0, 1] 。這一輪 0 刪除了。

第三輪開始時,從 1 開始,所以是 [1, 3, 4] 。這一輪 4 刪除了。

第四輪開始時,還是從 1 開始,所以是 [1, 3] 。這一輪 1 刪除了。

最後剩下的數字是 3。

然後我們從最後剩下的 3 倒著看,我們可以反向推出這個數字在之前每個輪次的位置

最後剩下的 3 的下標是 0。

第四輪反推,補上 m 個位置,然後模上當時的陣列大小 22,位置是(0 + 3) % 2 = 1。

第三輪反推,補上 m 個位置,然後模上當時的陣列大小 33,位置是(1 + 3) % 3 = 1。

第二輪反推,補上 m 個位置,然後模上當時的陣列大小 44,位置是(1 + 3) % 4 = 0。

第一輪反推,補上 m 個位置,然後模上當時的陣列大小 55,位置是(0 + 3) % 5 = 3。

所以最終剩下的數字的下標就是3。因為陣列是從0開始的,所以最終的答案就是3。

class

solution

return index;

}}

class

solution

return maxprofit;

}}

11 劍指offer第十一題(python)

問題 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。coding utf 8 class solution def numberof1 self,n write code here count 0 if n 0 n n 0xffffffff while n count 1 n n...

劍指offer全套解答 劍指offer 1 5

1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...

劍指offer全套解答 劍指offer 36 45

36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...