当前位置:网站首页>[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;
};
边栏推荐
- 法国学者:最优传输理论下对抗攻击可解释性探讨
- [Jianzhi offer] 6-10 questions
- 【ODX Studio編輯PDX】-0.2-如何對比Compare兩個PDX/ODX文件
- Notepad++--编辑的技巧
- Qt加法计算器(简单案例)
- CTF competition problem solution STM32 reverse introduction
- SPH中的粒子初始排列问题(两张图解决)
- The Chinese output of servlet server and client is garbled
- Servlet+jdbc+mysql simple web exercise
- UML图记忆技巧
猜你喜欢

MariaDB's Galera cluster application scenario -- multi master and multi active databases

MariaDB的Galera集群应用场景--数据库多主多活

SHP data making 3dfiles white film

Redis入門完整教程:Pipeline

Jar批量管理小工具

ETCD数据库源码分析——处理Entry记录简要流程

D3.js+Three. JS data visualization 3D Earth JS special effect

法国学者:最优传输理论下对抗攻击可解释性探讨

Redis: redis transactions

SPH中的粒子初始排列问题(两张图解决)
随机推荐
JS card style countdown days
Excel shortcut keys - always add
D3.js+Three. JS data visualization 3D Earth JS special effect
法国学者:最优传输理论下对抗攻击可解释性探讨
Explanation of bitwise operators
Async await used in map
ScriptableObject
蓝天NH55系列笔记本内存读写速度奇慢解决过程记录
金融市场,资产管理与投资基金
[crawler] XPath for data extraction
华泰证券低佣金的开户链接安全吗?
A mining of edu certificate station
Redis:Redis消息的发布与订阅(了解)
EditPlus--用法--快捷键/配置/背景色/字体大小
PICT 生成正交测试用例教程
OSEK标准ISO_17356汇总介绍
MariaDB的Galera集群应用场景--数据库多主多活
【js】-【动态规划】-笔记
VIM editor knowledge summary
ECS settings SSH key login