
文章目錄
算法作為極其重要的一點,是大學生畢業找工作的核心競争力,是以為了不落後與人,開始刷力扣算法題!
大家好,我是布小禅,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關注我,每天堅持學點東西,我們以後就是大佬啦!
📢 部落格首頁:
❤布小禅❤ 📢 作者專欄: ❤Python❤ ❤Java❤ ❤力扣題❤ 這是我刷第 77/100** 道力扣簡單題
桌上有
n
堆力扣币,每堆的數量儲存在數組
coins
中。我們每次可以選擇任意一堆,拿走其中的一枚或者兩枚,求拿完所有力扣币的最少次數。
示例1:
輸入:[4,2,1]
輸出:4
解釋:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,總共 4 次即可拿完
示例2:
輸入:[2,3,10]
輸出:8
提示:1 <= n <= 4
1 <= coins[i] <= 10
思路1
- 定義變量ans接收傳回值
- 周遊數組
- 判斷小于等于2的堆數,直接一次拿走,ans+1
- 大于2的數,判斷堆數是否能被2整除
-
- 能的話就除以2次拿走
- 不能的話除以2+1次拿走
/*
- 定義變量ans接收傳回值
- 周遊數組
- 判斷小于等于2的堆數,直接一次拿走,ans+1
- 大于2的數,判斷堆數是否能被2整除
- 能的話就除以2次拿走
- 不能的話除以2+1次拿走
*/
int minCount(int* coins, int coinsSize){
int ans = 0;
for (int i=0;i<coinsSize;i++)
{
if (coins[i]<=2)
{
ans++;
}else{
if (coins[i]%2==0)
{
ans += coins[i]/2;
}else{
ans += coins[i]/2+1;
}
}
}
return ans;
堅持最重要,每日一題必不可少!😸
期待你的關注和督促!😛