国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2023-05-21 LeetCode每日一題(蓄水)

這篇具有很好參考價值的文章主要介紹了2023-05-21 LeetCode每日一題(蓄水)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2023-05-21每日一題

一、題目編號

LCP 33. 蓄水

二、題目鏈接

點擊跳轉到題目位置

三、題目描述

給定 N 個無限容量且初始均空的水缸,每個水缸配有一個水桶用來打水,第 i 個水缸配備的水桶容量記作 bucket[i]。小扣有以下兩種操作:

升級水桶:選擇任意一個水桶,使其容量增加為 bucket[i]+1
蓄水:將全部水桶接滿水,倒入各自對應的水缸
每個水缸對應最低蓄水量記作 vat[i],返回小扣至少需要多少次操作可以完成所有水缸蓄水要求。

注意:實際蓄水量 達到或超過 最低蓄水量,即完成蓄水要求。

四、解題代碼

class Solution {
public:
    int storeWater(vector<int>& bucket, vector<int>& vat) {
        int n = bucket.size();
        int max_cnt = 0;
        for(int i = 0; i < n; ++i){
            if(bucket[i] == 0){
                max_cnt = max(max_cnt, vat[i]);
                continue;
            }
            if(vat[i] % bucket[i] == 0){
                max_cnt = max(max_cnt, vat[i] / bucket[i]); 
            } else{
                max_cnt = max(max_cnt, vat[i] / bucket[i] + 1);
            }
        }
        int res = INT_MAX;
        int i = 1;//灌水次數
        while(i <= max_cnt && i < res){
            int tmp = 0;
            for(int j = 0; j < n; ++j){
                if(bucket[j] * i < vat[j]){
                    if((vat[j] - bucket[j] * i) % i == 0){
                        tmp += (vat[j] - bucket[j] * i) / i;
                    } else{
                        tmp += (vat[j] - bucket[j] * i) / i + 1;
                    }
                }
            }
            res = min(res, tmp + i);
            ++i;
        }
        if(res == INT_MAX){
            return 0;
        }
    return res;
    }
};

五、解題思路

(1) 首先先計算出最多需要灌水多少次。如果本來木桶容量為0,則最多需要灌水的是對應的水缸對應最低蓄水量。如果木桶容量不為0,則需要vat[i] / bucket[i]的上界。

(2) 接著設置最小操作次數結果為res,res設置為最大值。用i 表示灌水次數,則i必須要小于res,必須要小于等于最大灌水次數。

(3) 每次計算出對應灌水次數的操作次數。如果該灌水次數能灌滿,則該次操作需要就為灌水次數,則不要額外操作。否則的話則補足額外需要的操作次數即可。最后計算出總的操作次數,更新最小結果。

(4) 最后注意,如果val都為0的話,此時結果為最大整數,此時需要返回的是0。文章來源地址http://www.zghlxwxcb.cn/news/detail-453564.html

到了這里,關于2023-05-21 LeetCode每日一題(蓄水)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 2023-05-15LeetCode每日一題(按列翻轉得到最大值等行數)

    點擊跳轉到題目位置 給定 m x n 矩陣 matrix 。 你可以從中選出任意數量的列并翻轉其上的 每個 單元格。(即翻轉后,單元格的值從 0 變成 1,或者從 1 變?yōu)?0 。) 返回 經過一些翻轉后,行與行之間所有值都相等的最大行數 (1) 首先思考一個問題,如果光給 一行元素 的話,那

    2024年02月05日
    瀏覽(21)
  • (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    難度:簡單 請實現一個函數,把字符串 s 中的每個 空格 替換成 “ %20 ”。 示例 1: 輸入:s = “We are happy.” 輸出:“We%20are%20happy.” 限制 : 0 = s 的長度 = 10000 ??思路:雙指針法 如果想把這道題目做到 極致 ,就不要只用額外的輔助空間了! 首先擴充數組到每個空格替換

    2024年02月08日
    瀏覽(30)
  • (排序) 劍指 Offer 21. 調整數組順序使奇數位于偶數前面 ——【Leetcode每日一題】

    (排序) 劍指 Offer 21. 調整數組順序使奇數位于偶數前面 ——【Leetcode每日一題】

    難度:簡單 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數在數組的前半部分,所有偶數在數組的后半部分。 示例: 輸入:nums = [1,2,3,4] 輸出:[1,3,2,4] 注:[3,1,2,4] 也是正確的答案之一。 提示 : 0 = n u m s . l e n g t h = 50000 0 = nums.length = 50000 0 =

    2024年02月12日
    瀏覽(21)
  • LeetCode 每日一題 2023/8/14-2023/8/20

    記錄了初步解題思路 以及本地實現代碼;并不一定為最優(yōu) 也希望大家能一起探討 一起進步 8/14 617. 合并二叉樹 dfs深搜 8/15 833. 字符串中的查找與替換 op存放該位置能替換的數值 從頭遍歷每個位置 8/16 2682. 找出轉圈游戲輸家 模擬 8/17 1444. 切披薩的方案數 動態(tài)規(guī)劃 dp[k][i][j] 表

    2024年02月12日
    瀏覽(24)
  • LeetCode 每日一題 2023/8/7-2023/8/13

    記錄了初步解題思路 以及本地實現代碼;并不一定為最優(yōu) 也希望大家能一起探討 一起進步 8/7 344. 反轉字符串 雙指針 8/8 1749. 任意子數組和的絕對值的最大值 記錄最小值 最大值 8/9 1281. 整數的各位積和之差 按要求計算 8/10 1289. 下降路徑最小和 II 從上到下遍歷每一行 在每一

    2024年02月13日
    瀏覽(44)
  • LeetCode 每日一題 2023/7/24-2023/7/30

    記錄了初步解題思路 以及本地實現代碼;并不一定為最優(yōu) 也希望大家能一起探討 一起進步 7/24 771. 寶石與石頭 將寶石類型放入set中 一次判斷石頭中寶石個數 7/25 2208. 將數組和減半的最少操作次數 大頂堆記錄當前最大值 每次取最大值減半 7/26 2569. 更新數組后處理求和查詢

    2024年02月15日
    瀏覽(45)
  • LeetCode 每日一題 2023/7/10-2023/7/16

    記錄了初步解題思路 以及本地實現代碼;并不一定為最優(yōu) 也希望大家能一起探討 一起進步 7/10 16. 最接近的三數之和 排序 先確定一個最小數 雙指針確定之后兩個數 7/11 1911. 最大子序列交替和 dp dp[i][0/1] 表示第i個數坐標為偶數或奇數的最大交替和 dp[i][0]=max(dp[i-1][0],dp[i-1][1

    2024年02月16日
    瀏覽(20)
  • LeetCode 每日一題 2023/9/25-2023/10/1

    記錄了初步解題思路 以及本地實現代碼;并不一定為最優(yōu) 也希望大家能一起探討 一起進步 9/25 460. LFU 緩存 freqMap 以頻率為索引 存放一個雙向鏈表 每個節(jié)點存放key,value,freq keyMap 以key為索引存放在freqMap中的位置 9/26 2582. 遞枕頭 n個人 經過2n-2次回到開始的人 9/27 1333. 餐廳過濾

    2024年02月07日
    瀏覽(24)
  • 2023-08-27 LeetCode每日一題(合并區(qū)間)

    2023-08-27 LeetCode每日一題(合并區(qū)間)

    點擊跳轉到題目位置 以數組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回 一個不重疊的區(qū)間數組,該數組需恰好覆蓋輸入中的所有區(qū)間 。 示例 1: 示例 2: 提示: 1 = intervals.length = 10 4 intervals[i].length == 2 0 = s

    2024年02月10日
    瀏覽(27)
  • 2023-08-28 LeetCode每日一題(插入區(qū)間)

    2023-08-28 LeetCode每日一題(插入區(qū)間)

    點擊跳轉到題目位置 給你一個 無重疊的 ,按照區(qū)間起始端點排序的區(qū)間列表。 在列表中插入一個新的區(qū)間,你需要確保列表中的區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 0 = intervals.length = 10 4 interval

    2024年02月11日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包