中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站屬性設置互聯(lián)網(wǎng)平臺

網(wǎng)站屬性設置,互聯(lián)網(wǎng)平臺,app搭建開發(fā),網(wǎng)站建設工作流程html文章目錄 第十課 貪心lc 322.零錢兌換--中等題目描述代碼展示 lc860.檸檬水找零--簡單題目描述代碼展示 lc455.分發(fā)餅干--簡單題目描述代碼展示 lc122.買賣股票的最佳時機II--中等題目描述代碼展示 lc45.跳躍游戲II--中等題目描述代碼展示 lc1665.完成所有任務的最少初始能量--…

文章目錄

  • 第十課 貪心
    • lc 322.零錢兌換--中等
      • 題目描述
      • 代碼展示
    • lc860.檸檬水找零--簡單
      • 題目描述
      • 代碼展示
    • lc455.分發(fā)餅干--簡單
      • 題目描述
      • 代碼展示
    • lc122.買賣股票的最佳時機II--中等
      • 題目描述
      • 代碼展示
    • lc45.跳躍游戲II--中等
      • 題目描述
      • 代碼展示
    • lc1665.完成所有任務的最少初始能量--困難
      • 題目描述
      • 代碼展示

第十課 貪心

lc 322.零錢兌換–中等

題目描述

給你一個整數(shù)數(shù)組 coins ,表示不同面額的硬幣;以及一個整數(shù) amount ,表示總金額。

計算并返回可以湊成總金額所需的 最少的硬幣個數(shù) 。如果沒有任何一種硬幣組合能組成總金額,返回 -1 。

你可以認為每種硬幣的數(shù)量是無限的。

示例 1:

輸入:coins = [1, 2, 5], amount = 11
輸出:3 
解釋:11 = 5 + 5 + 1

示例 2:

輸入:coins = [2], amount = 3
輸出:-1

示例 3:

輸入:coins = [1], amount = 0
輸出:0

提示:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 231 - 1
  • 0 <= amount <= 104

代碼展示

class Solution {public int coinChange(int[] coins, int amount) {int INF = (int)1e9; // 定義一個無窮大的值,用于初始化 dp 數(shù)組int[] opt = new int[amount + 1]; // 創(chuàng)建一個 dp 數(shù)組,用于存儲湊成各個金額所需的最小硬幣數(shù)量opt[0] = 0; // 初始化金額為 0 時的硬幣數(shù)量為 0// 從金額 1 開始逐步計算到 amountfor (int i = 1; i <= amount; i++) {opt[i] = INF; // 初始化為無窮大,表示無法湊成該金額for (int j = 0; j < coins.length; j++) {if (i - coins[j] >= 0) {// 嘗試使用每個硬幣來湊成金額 i,并更新 dp[i] 的最小值opt[i] = Math.min(opt[i], opt[i - coins[j]] + 1);}}}// 如果 opt[amount] 仍然等于 INF,表示無法湊成總金額,返回 -1;否則返回 opt[amount]if (opt[amount] >= INF) {opt[amount] = -1;}return opt[amount];}
}

lc860.檸檬水找零–簡單

題目描述

在檸檬水攤上,每一杯檸檬水的售價為 5 美元。顧客排隊購買你的產(chǎn)品,(按賬單 bills 支付的順序)一次購買一杯。

每位顧客只買一杯檸檬水,然后向你付 5 美元、10 美元或 20 美元。你必須給每個顧客正確找零,也就是說凈交易是每位顧客向你支付 5 美元。

注意,一開始你手頭沒有任何零錢。

給你一個整數(shù)數(shù)組 bills ,其中 bills[i] 是第 i 位顧客付的賬。如果你能給每位顧客正確找零,返回 true ,否則返回 false

示例 1:

輸入:bills = [5,5,5,10,20]
輸出:true
解釋:
前 3 位顧客那里,我們按順序收取 3 張 5 美元的鈔票。
第 4 位顧客那里,我們收取一張 10 美元的鈔票,并返還 5 美元。
第 5 位顧客那里,我們找還一張 10 美元的鈔票和一張 5 美元的鈔票。
由于所有客戶都得到了正確的找零,所以我們輸出 true。

示例 2:

輸入:bills = [5,5,10,10,20]
輸出:false
解釋:
前 2 位顧客那里,我們按順序收取 2 張 5 美元的鈔票。
對于接下來的 2 位顧客,我們收取一張 10 美元的鈔票,然后返還 5 美元。
對于最后一位顧客,我們無法退回 15 美元,因為我們現(xiàn)在只有兩張 10 美元的鈔票。
由于不是每位顧客都得到了正確的找零,所以答案是 false。

提示:

  • 1 <= bills.length <= 105
  • bills[i] 不是 5 就是 10 或是 20

代碼展示

class Solution {public boolean lemonadeChange(int[] bills) {int fiveCount = 0;int tenCount = 0;for (int bill : bills) {if (bill == 5) {fiveCount++;} else if (bill == 10) {if (fiveCount > 0) {fiveCount--;tenCount++;} else {return false;}} else { // 當賬單為20美元時if (tenCount > 0 && fiveCount > 0) {tenCount--;fiveCount--;} else if (fiveCount >= 3) {fiveCount -= 3;} else {return false;}}}return true;}
}

lc455.分發(fā)餅干–簡單

題目描述

假設你是一位很棒的家長,想要給你的孩子們一些小餅干。但是,每個孩子最多只能給一塊餅干。

對每個孩子 i,都有一個胃口值 g[i],這是能讓孩子們滿足胃口的餅干的最小尺寸;并且每塊餅干 j,都有一個尺寸 s[j] 。如果 s[j] >= g[i],我們可以將這個餅干 j 分配給孩子 i ,這個孩子會得到滿足。你的目標是盡可能滿足越多數(shù)量的孩子,并輸出這個最大數(shù)值。

示例 1:

輸入: g = [1,2,3], s = [1,1]
輸出: 1
解釋: 
你有三個孩子和兩塊小餅干,3個孩子的胃口值分別是:1,2,3。
雖然你有兩塊小餅干,由于他們的尺寸都是1,你只能讓胃口值是1的孩子滿足。
所以你應該輸出1。

示例 2:

輸入: g = [1,2], s = [1,2,3]
輸出: 2
解釋: 
你有兩個孩子和三塊小餅干,2個孩子的胃口值分別是1,2。
你擁有的餅干數(shù)量和尺寸都足以讓所有孩子滿足。
所以你應該輸出2.

提示:

  • 1 <= g.length <= 3 * 104
  • 0 <= s.length <= 3 * 104
  • 1 <= g[i], s[j] <= 231 - 1

代碼展示

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int i = 0, j = 0;int satisfied = 0;while (i < g.size() && j < s.size()) {if (s[j] >= g[i]) {satisfied++;i++;}j++;}return satisfied;}
};

lc122.買賣股票的最佳時機II–中等

題目描述

給你一個整數(shù)數(shù)組 prices ,其中 prices[i] 表示某支股票第 i 天的價格。

在每一天,你可以決定是否購買和/或出售股票。你在任何時候 最多 只能持有 一股 股票。你也可以先購買,然后在 同一天 出售。

返回 你能獲得的 最大 利潤 。

示例 1:

輸入:prices = [7,1,5,3,6,4]
輸出:7
解釋:在第 2 天(股票價格 = 1)的時候買入,在第 3 天(股票價格 = 5)的時候賣出, 這筆交易所能獲得利潤 = 5 - 1 = 4 。隨后,在第 4 天(股票價格 = 3)的時候買入,在第 5 天(股票價格 = 6)的時候賣出, 這筆交易所能獲得利潤 = 6 - 3 = 3 。總利潤為 4 + 3 = 7 。

示例 2:

輸入:prices = [1,2,3,4,5]
輸出:4
解釋:在第 1 天(股票價格 = 1)的時候買入,在第 5 天 (股票價格 = 5)的時候賣出, 這筆交易所能獲得利潤 = 5 - 1 = 4 ??偫麧櫈?4 。

示例 3:

輸入:prices = [7,6,4,3,1]
輸出:0
解釋:在這種情況下, 交易無法獲得正利潤,所以不參與交易可以獲得最大利潤,最大利潤為 0 。

提示:

  • 1 <= prices.length <= 3 * 104
  • 0 <= prices[i] <= 104

代碼展示

class Solution {
public:int maxProfit(vector<int>& prices) {   int ans = 0;         // 初始化最大利潤為0int n = prices.size(); // 獲取股票價格數(shù)組的長度for (int i = 1; i < n; ++i) { // 遍歷股票價格數(shù)組ans += max(0, prices[i] - prices[i - 1]); // 計算并累加利潤,如果是負數(shù)則不累加}return ans; // 返回最大利潤}
};

image-20231007173225396

lc45.跳躍游戲II–中等

題目描述

給定一個長度為 n0 索引整數(shù)數(shù)組 nums。初始位置為 nums[0]。

每個元素 nums[i] 表示從索引 i 向前跳轉(zhuǎn)的最大長度。換句話說,如果你在 nums[i] 處,你可以跳轉(zhuǎn)到任意 nums[i + j] 處:

  • 0 <= j <= nums[i]
  • i + j < n

返回到達 nums[n - 1] 的最小跳躍次數(shù)。生成的測試用例可以到達 nums[n - 1]。

示例 1:

輸入: nums = [2,3,1,1,4]
輸出: 2
解釋: 跳到最后一個位置的最小跳躍數(shù)是 2。從下標為 0 跳到下標為 1 的位置,跳 1 步,然后跳 3 步到達數(shù)組的最后一個位置。

示例 2:

輸入: nums = [2,3,0,1,4]
輸出: 2

提示:

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 1000
  • 題目保證可以到達 nums[n-1]

代碼展示

class Solution {
public:int jump(vector<int>& nums) {int n = nums.size();int jumps = 0;int farthest = 0;int currentEnd = 0;for (int i = 0; i < n - 1; i++) {farthest = max(farthest, i + nums[i]); // 更新當前能夠跳到的最遠位置if (i == currentEnd) { // 如果到達當前能夠跳的最遠位置jumps++; // 增加跳躍次數(shù)currentEnd = farthest; // 更新當前能夠跳到的最遠位置}}return jumps;}
};

image-20231007173359581

lc1665.完成所有任務的最少初始能量–困難

題目描述

給你一個任務數(shù)組 tasks ,其中 tasks[i] = [actuali, minimumi]

  • actuali 是完成第 i 個任務 需要耗費 的實際能量。
  • minimumi 是開始第 i 個任務前需要達到的最低能量。

比方說,如果任務為 [10, 12] 且你當前的能量為 11 ,那么你不能開始這個任務。如果你當前的能量為 13 ,你可以完成這個任務,且完成它后剩余能量為 3 。

你可以按照 任意順序 完成任務。

請你返回完成所有任務的 最少 初始能量。

示例 1:

輸入:tasks = [[1,2],[2,4],[4,8]]
輸出:8
解釋:
一開始有 8 能量,我們按照如下順序完成任務:- 完成第 3 個任務,剩余能量為 8 - 4 = 4 。- 完成第 2 個任務,剩余能量為 4 - 2 = 2 。- 完成第 1 個任務,剩余能量為 2 - 1 = 1 。
注意到盡管我們有能量剩余,但是如果一開始只有 7 能量是不能完成所有任務的,因為我們無法開始第 3 個任務。

示例 2:

輸入:tasks = [[1,3],[2,4],[10,11],[10,12],[8,9]]
輸出:32
解釋:
一開始有 32 能量,我們按照如下順序完成任務:- 完成第 1 個任務,剩余能量為 32 - 1 = 31 。- 完成第 2 個任務,剩余能量為 31 - 2 = 29 。- 完成第 3 個任務,剩余能量為 29 - 10 = 19 。- 完成第 4 個任務,剩余能量為 19 - 10 = 9 。- 完成第 5 個任務,剩余能量為 9 - 8 = 1 。

示例 3:

輸入:tasks = [[1,7],[2,8],[3,9],[4,10],[5,11],[6,12]]
輸出:27
解釋:
一開始有 27 能量,我們按照如下順序完成任務:- 完成第 5 個任務,剩余能量為 27 - 5 = 22 。- 完成第 2 個任務,剩余能量為 22 - 2 = 20 。- 完成第 3 個任務,剩余能量為 20 - 3 = 17 。- 完成第 1 個任務,剩余能量為 17 - 1 = 16 。- 完成第 4 個任務,剩余能量為 16 - 4 = 12 。- 完成第 6 個任務,剩余能量為 12 - 6 = 6 。

提示:

  • 1 <= tasks.length <= 105
  • 1 <= actuali <= minimumi <= 104

代碼展示

class Solution {
public:int minimumEffort(vector<vector<int>>& tasks) {/*消耗(actual)小,門檻(minimum)大,是先做的條件按actual + (-minimum)排序*/sort(tasks.begin(), tasks.end(),[](vector<int>& a, vector<int>& b) {return a[0] - a[1] < b[0] - b[1];});// 正序做任務,但計算要倒序int energy = 0; // 任務全部做完(什么也不用再做了)的時候,還需要0的能量for (int i = tasks.size() - 1; i >= 0; i--) {//           minimum        energy + actualenergy = max(tasks[i][1], energy + tasks[i][0]);}return energy;}
};

image-20231007173715906

image-20231007173724698

http://www.risenshineclean.com/news/11244.html

相關文章:

  • 嘉興seo網(wǎng)站建設費用百度指數(shù)搜索指數(shù)的數(shù)據(jù)來源
  • 如何做國外網(wǎng)站彩票的推廣網(wǎng)絡營銷策劃書總結(jié)
  • 上海英文網(wǎng)站建設公司中國工商業(yè)聯(lián)合會
  • 免費建站的手機app怎么做表格
  • 網(wǎng)站開發(fā) 深圳seo輿情優(yōu)化
  • 企業(yè)網(wǎng)站怎做seo技術培訓東莞
  • 盧灣區(qū)網(wǎng)站建設制作網(wǎng)絡整合營銷理論
  • 個人建網(wǎng)站的步驟網(wǎng)站內(nèi)容優(yōu)化方法
  • 東山縣建設銀行網(wǎng)站企業(yè)郵箱查詢
  • 學做網(wǎng)站都要學什么專業(yè)外貿(mào)訂單一般在哪個平臺接
  • html5 網(wǎng)站建設方案百度競價排名的利與弊
  • 網(wǎng)站建設語百度搜索大全
  • 本科網(wǎng)站開發(fā)畢業(yè)設計我為什么不建議年輕人做運營
  • 成人午夜黃網(wǎng)站在線觀看吉林網(wǎng)站seo
  • 網(wǎng)站怎么提高權(quán)重百度招聘網(wǎng)最新招聘信息
  • 專業(yè)3合1網(wǎng)站建設公司搜索風云榜
  • 什么是營銷網(wǎng)站哈爾濱seo推廣優(yōu)化
  • 南京做網(wǎng)站南京樂識最優(yōu)如何快速推廣自己的品牌
  • 宜昌市高新區(qū)建設局網(wǎng)站如何做好市場推廣
  • 發(fā)布消息做任務的網(wǎng)站百度競價調(diào)價軟件
  • oa網(wǎng)站建設價格泉州百度推廣排名優(yōu)化
  • .design 域名的網(wǎng)站微信搜一搜seo優(yōu)化
  • 成品網(wǎng)站模板下載吉林seo刷關鍵詞排名優(yōu)化
  • 做網(wǎng)站推廣微信叫什么網(wǎng)名好適合口碑營銷的產(chǎn)品
  • 一般網(wǎng)站做哪些端口映射快速seo整站優(yōu)化排行
  • 帝國 只做網(wǎng)站地圖互聯(lián)網(wǎng)項目推廣是什么
  • 利用php制作動態(tài)網(wǎng)站開發(fā)百度搜索關鍵詞排名
  • 網(wǎng)站建設怎么樣工作湘潭高新區(qū)最新新聞
  • 外貿(mào)公司網(wǎng)站建設落實20條優(yōu)化措施
  • 環(huán)球資源網(wǎng)官網(wǎng)長沙seo工作室