当前位置:网站首页>[JS] - [dynamic planning] - Notes
[JS] - [dynamic planning] - Notes
2022-07-04 23:17:00 【Interesting learning】
【js】-【 Dynamic programming 】- note
1 How to find coins gracefully
Give coins of different denominations coins And a total amount amount. Write a function to calculate the amount needed to make up the total amount least
Number of coins . If no combination of coins can make up the total amount , return -1.
Example 1:
Input : coins = [1, 2, 5], amount = 11
Output : 3
explain : 11 = 5 + 5 + 1
Example 2:
Input : coins = [2], amount = 3
Output : -1
const coinChange = function(coins, amount) {
# It is used to save the minimum number of coins corresponding to each target total
const f = []
f[0] = 0
# Traverse [1, amount] The total amount of coins in this range
for(let i=1;i<=amount;i++) {
# It's the minimum , We assume infinity
f[i] = Infinity
// Loop through the denomination of each available coin
for(let j=0;j<coins.length;j++) {
# If the denomination is less than the target total , Then the problem holds
if(i-coins[j]>=0) {
// State transition equation
f[i] = Math.min(f[i],f[i-coins[j]]+1)
}
}
}
// If the solution corresponding to the target sum is infinite , It means that there is no eligible total number of coins to update it , There is no solution to this problem , return -1
if(f[amount]===Infinity) {
return -1
}
// If there is a solution , Return the content of the solution directly
return f[amount]
};
2 0-1 knapsack problem
Yes n
Item , The volume of the object is called w
Save the array of , The value of an item is called value
Save the array of ; The volume of each article is w[i]
To express , The value of each item is value[i]
To express . There is now a capacity of c
The backpack , Ask how you choose items to put into your backpack , In order to maximize the total value of the items in the backpack ?
Be careful : There are only 1 Pieces of
# Participation is the number of items and the upper limit of the backpack , And an array of weights and values of items
function knapsack(n, c, w, value) {
// dp Is a dynamic planning state saving array
const dp = (new Array(c+1)).fill(0)
# res It is used to record the maximum value in all combination schemes
let res = -Infinity
for(let i=1;i<=n;i++) {
for(let v=c;v>=w[i];v--) {
// Write the equation of state transition
dp[v] = Math.max(dp[v], dp[v-w[i]] + value[i])
// Update the maximum value immediately
if(dp[v] > res) {
res = dp[v]
}
}
}
return res
}
3 Longest ascending subsequence model
Title Description : Given an unordered array of integers , Find the length of the longest ascending subsequence .
Example :
Input : [10,9,2,5,3,7,101,18]
Output : 4
explain : The longest ascending subsequence is [2,3,7,101], Its length is 4.
var lengthOfLIS = function(nums) {
if(!nums.length) return 0;
# Initialize the status value of each index bit in the array
const dp= new Array(nums.length).fill(1);
let res =1;
for(let i=1;i<nums.length;i++){
for(let j=0;j<i;j++){
# If you encounter a value smaller than the current element , It means that an ascending subsequence that can be extended , Therefore, update the status corresponding to the index bit of the current element
if(nums[j]<nums[i]) dp[i]=Math.max(dp[i],dp[j]+1);
}
res= Math.max(dp[i],res);
}
return res;
};
边栏推荐
- 一次edu证书站的挖掘
- 初试为锐捷交换机跨设备型号升级版本(以RG-S2952G-E为例)
- After Microsoft disables the IE browser, open the IE browser to flash back the solution
- UML diagram memory skills
- 壁仞科技研究院前沿技术文章精选
- ICML 2022 || 3DLinker: 用于分子链接设计的E(3)等变变分自编码器
- ScriptableObject
- QT drawing network topology diagram (connecting database, recursive function, infinite drawing, dragging nodes)
- Redis入門完整教程:Pipeline
- Redis getting started complete tutorial: Geo
猜你喜欢
P2181 对角线和P1030 [NOIP2001 普及组] 求先序排列
[Jianzhi offer] 6-10 questions
One of the commonly used technical indicators, reading boll Bollinger line indicators
Set up a website with a sense of ceremony, and post it to 1/2 of the public network through the intranet
vim编辑器知识总结
Redis:Redis消息的发布与订阅(了解)
LabVIEW中比较两个VI
Redis入門完整教程:Pipeline
Redis getting started complete tutorial: Geo
SPH中的粒子初始排列问题(两张图解决)
随机推荐
金融市场,资产管理与投资基金
Solve the problem that the virtual machine cannot be remotely connected through SSH service
Redis入门完整教程:集合详解
Editplus-- usage -- shortcut key / configuration / background color / font size
[Jianzhi offer] 6-10 questions
【js】-【排序-相关】-笔记
高配笔记本使用CAD搬砖时卡死解决记录
解决无法通过ssh服务远程连接虚拟机
Ffmpeg quick clip
How to choose a securities company? Is it safe to open an account on your mobile phone
[sword finger offer] questions 1-5
Redis introduction complete tutorial: Collection details
Font design symbol combination multifunctional wechat applet source code
[odx Studio Edit pdx] - 0.2 - Comment comparer deux fichiers pdx / odx
PS style JS webpage graffiti board plug-in
Explanation of bitwise operators
Intelligence test to see idioms guess ancient poems wechat applet source code
一次edu证书站的挖掘
SPH中的粒子初始排列问题(两张图解决)
云服务器设置ssh密钥登录