練習題9 糖果問題

2021-10-06 16:57:11 字數 1610 閱讀 2667

原問題:擁有最多糖果的孩子

給你乙個陣列 candies 和乙個整數 extracandies ,其中 candies[i] 代表第 i 個孩子擁有的糖果數目。對每乙個孩子,檢查是否存在一種方案,將額外的 extracandies 個糖果分配給孩子們之後,此孩子有 最多 的糖果。注意,允許有多個孩子同時擁有 最多 的糖果數目。

示例 1:

輸入:candies = [2,3,5,1,3], extracandies = 3

輸出:[true,true,true,false,true]

解釋:孩子 1 有 2 個糖果,如果他得到所有額外的糖果(3個),那麼他總共有 5 個糖果,他將成為擁有最多糖果的孩子。

孩子 2 有 3 個糖果,如果他得到至少 2 個額外糖果,那麼他將成為擁有最多糖果的孩子。

孩子 3 有 5 個糖果,他已經是擁有最多糖果的孩子。

孩子 4 有 1 個糖果,即使他得到所有額外的糖果,他也只有 4 個糖果,無法成為擁有糖果最多的孩子。

孩子 5 有 3 個糖果,如果他得到至少 2 個額外糖果,那麼他將成為擁有最多糖果的孩子。

示例 2:

輸入:candies = [4,2,1,1,2], extracandies = 1

輸出:[true,false,false,false,false]

解釋:只有 1 個額外糖果,所以不管額外糖果給誰,只有孩子 1 可以成為擁有糖果最多的孩子。

示例 3:

輸入:candies = [12,1,12], extracandies = 10

輸出:[true,false,true]

思路:1.首先通過if比較找出最大值

2.再通過for迴圈判斷來決定是否滿足條件,並將true,false情況加入容器之中

3.返回容器

問題:1.vecotor容器使用前需要初始化才能使用,否則會報錯

2.直接用cout輸出bool 容器,只能輸出1和0。

解決:1.用vector容器初始化函式,vectora(t,0)初始化成有t個0數值。

2.用cout<**:

#include

#include

using

namespace std;

vector<

bool

>

kidswithcandies

(vector<

int>

& candies,

int extracandies)

}for

(int i =

0; i < t; i++

)else

}return b;

}int

main()

; vector<

bool

>bo(

5,0)

;int t = a.

size()

;int extracandies=3;

bo =

kidswithcandies

(a, extracandies)

;for

(int i =

0; i < t; i++

)}

參考了

練習題8(回文數)

C語言練習題 9

1 1 分析程式,寫出輸出結果?char ptr if ptr char malloc 0 null puts got a null pointer else puts got a valid pointer 會輸出got a valid pointer。原因 malloc 0 會返回乙個特別的可以...

python練習題9 類

1.自定義乙個 fruit 類 該類有乙個 類屬性 identify,有兩個物件屬性 name,price,乙個類方法 get identify,乙個物件方法 get total price num 列印 s個 s值 s錢 乙個靜態方法 packing fruits class fruit iden...

《C primerplus》第9章練習題

1.未使用原書例題 練習多檔案組織。在乙個標頭檔案中定義一種學生的結構體,儲存姓名和年齡,宣告三個函式分別用於詢問有多少個學生,輸入學生的資訊和展示學生的資訊。在另乙個原始檔中給出所有函式的定義。在主程式中使用new初始化結構指標,呼叫三個函式。main.cpp include include ex...