力扣(LeetCode)猜數字大小 個人題解

2022-09-03 09:30:08 字數 758 閱讀 3530

我們正在玩乙個猜數字遊戲。 遊戲規則如下:

我從 1 到 n 選擇乙個數字。 你需要猜我選擇了哪個數字。

每次你猜錯了,我會告訴你這個數字是大了還是小了。

你呼叫乙個預先定義好的介面guess(int num),它會返回 3 個可能的結果(-110):

-1 : 我的數字比較小

1 : 我的數字比較大

0 : 恭喜!你猜對了!

這道題的思路並不困難,重點是理解題意和避免陷阱。

這裡的guess(int num)介面,輸入m,也就是你猜測的值,會返回給你乙個判斷,是高了還是低了。你編寫的guessnumber(int n)是猜測的過程。

理解題意後,就比較簡單了,要想最快速查到答案,二分法是最快的辦法,很顯然,第乙個猜測的將是1-n的中間數,如果高了,就要在左邊查詢,如果低了,就要在右邊查詢,直到找到答案。

不過在網友提示下,要注意數字中間值溢位的問題,所以使用mid=left+(right-left)/2的形式實現。不能直接使用mid=(left+right)/2。這也是以後程式設計需要注意到的地方。

**如下:

public

class solution extends

guessgame

else

if (guess(mid) == 1)

else

}return 1;

}}

leetcode猜數字大小

第一種方法 二分查詢 class solution object def guessnumber self,n type n int rtype int left 1 right n while left right mid left right 1 if guess mid 1 right mid...

299猜數字遊戲(力扣)

你在和朋友一起玩 猜數字 bulls and cows 遊戲,該遊戲規則如下 1.你寫出乙個秘密數字,並請朋友猜這個數字是多少。2.朋友每猜測一次,你就會給他乙個提示,告訴他的猜測數字中有多少位屬於數字和確切位置都猜對了 稱為 bulls 公牛 有多少位屬於數字猜對了但是位置不對 稱為 cows 奶...

12 23 力扣題目 猜數字

小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。首先加乙個計數器...