当前位置:网站首页>[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;
};
边栏推荐
- Editplus-- usage -- shortcut key / configuration / background color / font size
- S32 Design Studio for ARM 2.2 快速入门
- Solution record of jamming when using CAD to move bricks in high configuration notebook
- ETCD数据库源码分析——处理Entry记录简要流程
- mamp下缺少pcntl扩展的解决办法,Fatal error: Call to undefined function pcntl_signal()
- 高配笔记本使用CAD搬砖时卡死解决记录
- Wechat official account solves the cache problem of entering from the customized menu
- 数据库基础知识
- Question brushing guide public
- Excel shortcut keys - always add
猜你喜欢
[binary tree] the maximum difference between a node and its ancestor
[sword finger offer] questions 1-5
Redis introduction complete tutorial: client communication protocol
位运算符讲解
Redis introduction complete tutorial: List explanation
为什么信息图会帮助你的SEO
[graph theory] topological sorting
Font design symbol combination multifunctional wechat applet source code
A mining of edu certificate station
The caching feature of docker image and dockerfile
随机推荐
CTF competition problem solution STM32 reverse introduction
Object detection based on OpenCV haarcascades
The solution to the lack of pcntl extension under MAMP, fatal error: call to undefined function pcntl_ signal()
【二叉树】节点与其祖先之间的最大差值
【爬虫】数据提取之xpath
【ODX Studio编辑PDX】-0.3-如何删除/修改Variant变体中继承的(Inherited)元素
Pict generate orthogonal test cases tutorial
Qualcomm WLAN framework learning (30) -- components supporting dual sta
Excel 快捷键-随时补充
MP advanced operation: time operation, SQL, querywapper, lambdaquerywapper (condition constructor) quick filter enumeration class
UML diagram memory skills
Redis:Redis消息的发布与订阅(了解)
phpcms付费阅读功能支付宝支付
Application of machine learning in housing price prediction
数据库基础知识
QT drawing network topology diagram (connecting database, recursive function, infinite drawing, dragging nodes)
刷题指南-public
Stm32 Reverse Introduction to CTF Competition Interpretation
【kotlin】第三天
Phpcms paid reading function Alipay payment