[leetcode/lintcode 題解] 位元組跳動面試題:換硬幣
輸入:
[1, 2, 5]
11
輸出: 3
解釋: 11 = 5 + 5 + 1
樣例2
輸入:
[2]
3
輸出: -1
題解
這是一個典型的完全揹包問題,在《動態規劃專題班》中侯衛東老師有詳細講解。設dpi表示使用前i個硬幣,總金額為j時需要的最少硬幣數量。 dp[i][j]=max(dp[i−1][j],dp[i−1][j−k∗coin[i]]+k)(0≤k∗coin[i]≤j)
public class Solution {
public int coinChange(int[] A, int M) {
int[] f = new int[M + 1];
int n = A.length;
f[0] = 0;
int i, j;
for (i = 1; i <= M; ++i) {
f[i] = -1;
for (j = 0; j < n; ++j) {
if (i >= A[j] && f[i - A[j]] != -1) {
if (f[i] == -1 || f[i - A[j]] + 1 < f[i]) {
f[i] = f[i - A[j]] + 1;
}
}
}
}
return f[M];
}
}
更多題解參考:九章官網solution
相關推薦
[leetcode/lintcode 題解] 位元組跳動面試題:換硬幣
給出不同面額的硬幣以及一個總金額. 寫一個方法來計算給出的總金額可以換取的最少的硬幣數量. 如果已有硬幣的任意組合均無法與總金額面額相等, 那麼返回 -1.
[leetcode/lintcode 題解] 位元組跳動面試題:合併k個排序陣列
將 k 個有序數組合併為一個大的有序陣列。 線上評測地址:領釦題庫官網 樣例 1:
[leetcode/lintcode 題解]阿里巴巴面試題:最大子陣列 II
技術標籤:演算法leetcodepythonjava資料結構 描述 給定一個整數陣列,找出兩個 不重疊 子陣列使得它們的和最大。 每個子陣列的數字在陣列中的位置應該是連續的。 返回最大的和。
【LeetCode/LintCode】丨Google面試題:N皇后問題
n皇后問題是將n個皇后放置在n*n的棋盤上,皇后彼此之間不能相互攻擊(任意兩個皇后不能位於同一行,同一列,同一斜線)。
位元組跳動面試題:你的平均薪水是多少?
薪水錶中記錄了員工的編號,所在部門編號,和薪水。 查詢出每個部門除去最高、最低薪水後的平均薪水,並保留整數。(位元組跳動面試題)
【LeetCode/LintCode】 題解丨Facebook面試題:序列重構
判斷是否序列 org 能唯一地由 seqs重構得出. org是一個由從1到n的正整數排列而成的序列,1≤n≤10^4。 重構表示組合成seqs的一個最短的父序列 (意思是,一個最短的序列使得所有 seqs裡
【LeetCode/LintCode】題解丨 Google面試題:單詞搜尋 II
給出一個由小寫字母組成的矩陣和一個字典。找出所有同時在字典和矩陣中出現的單詞。一個單詞可以從矩陣中的任意位置開始,可以向左/右/上/下四個相鄰方向移動。一個字母在一個單詞中只能被使用一次。且字典中不存在重
牛客網--位元組跳動面試題--雀魂啟動
牛客網--位元組跳動面試題--雀魂啟動 部落格說明 文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!
牛客網--位元組跳動面試題--萬萬沒想到之聰明的編輯
牛客網--位元組跳動面試題--萬萬沒想到之聰明的編輯 部落格說明 文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!
牛客網--位元組跳動面試題--萬萬沒想到之抓捕孔連順
牛客網--位元組跳動面試題--萬萬沒想到之抓捕孔連順 部落格說明 文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!
牛客網--位元組跳動面試題--特徵提取
牛客網--位元組跳動面試題--特徵提取 部落格說明 文章所涉及的資料來自網際網路整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯絡本人刪除,謝謝!
【位元組跳動面試題】 擼它
牛客刷題偶遇 位元組後端筆試0715 擼它 一共兩道程式設計題。 1、 給定一個合法的計算表示式,該表示式只包括
位元組跳動面試題(封裝一個佇列)
技術標籤:面試題javascript function ArrayQueue(){ var arr = []; //入隊操作 this.push = function(element){
位元組跳動面試題
技術標籤:js手寫題目javascript 駝峰轉換: <!DOCTYPE html> <html lang="en">
位元組跳動面試題,給你一個每一項都是數值混亂順序的陣列,只要裡面正確順序的值輸出。如[5,1,3,6,2,7],只要[1,2,7]
//位元組跳動面試題,給你一個每一項都是數值混亂順序的陣列,只要裡面正確順序的值輸出,如[5,1,3,6,2,7],只要[1,2,7]
[leetcode/lintcode 題解] 微軟面試題:公平索引
現在給你兩個長度均為N的整數陣列 A 和 B。 當(A[0]+...A[K-1]),(A[K]+...+A[N-1]),(B[0]+...+B[K-1]) 和 (B[K]+...+B[N-1])四個和值大小相等時,稱索引K是一個公平索引。也就是說,索引K 可以使得A, B 兩個陣列被
【LeetCode/LintCode】 題解丨阿里高頻面試題:密碼強度檢查器
當以下條件都滿足時,一個密碼被視為是強密碼: 至少包含6個字元,但不超過20個字元。
【LeetCode/LintCode】 題解丨谷歌高頻面試題:最大假期天數
LintCode想讓它最好的員工之一選擇在N個城市間旅行來收集演算法問題。但是隻工作不玩耍,聰明的孩子也會變傻,你可以在某些特定的城市並且一個星期裡去度假。你的工作是安排旅行,儘可能多的假期,但是有一些規則和限
【LeetCode/LintCode】 題解丨騰訊面試題:被圍繞的區域
給一個二維的矩陣,包含 \'X\' 和 \'O\', 找到所有被 \'X\' 圍繞的區域,並用 \'X\' 替換其中所有的 \'O\'。
【LeetCode/LintCode】 題解丨谷歌面試題:二叉樹的序列化和反序列化
設計一個演算法,並編寫程式碼來序列化和反序列化二叉樹。將樹寫入一個檔案被稱為“序列化”,讀取檔案後重建同樣的二叉樹被稱為“反序列化”。