天天看點

LeetCode刷題LCP06-簡單-拿硬币☀️ 前言 ☀️🙀 作者簡介 🙀💗 一、題目描述 💗💁 二、題目解析 💁🏃 三、代碼 🏃🌔 結語 🌔

LeetCode刷題LCP06-簡單-拿硬币☀️ 前言 ☀️🙀 作者簡介 🙀💗 一、題目描述 💗💁 二、題目解析 💁🏃 三、代碼 🏃🌔 結語 🌔

文章目錄

算法作為極其重要的一點,是大學生畢業找工作的核心競争力,是以為了不落後與人,開始刷力扣算法題!

大家好,我是布小禅,一個盡力讓無情的代碼變得生動有趣的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;
      

堅持最重要,每日一題必不可少!😸

期待你的關注和督促!😛

LeetCode刷題LCP06-簡單-拿硬币☀️ 前言 ☀️🙀 作者簡介 🙀💗 一、題目描述 💗💁 二、題目解析 💁🏃 三、代碼 🏃🌔 結語 🌔