背包算法练习--求小于某数字的数组最大和:
2023-09-11 14:15:00 时间
思路:
1. 假设当前剩余总和小于最大值:
a.循环当前剩余数字
b.递归运行
c. 用一个变量bestS存小于最大值情况下的最大总和
var bestS = {val:0,str:""}; var LIMIT ; Array.prototype.sum = function(){ var s = 0; for(var i = 0;i < this.length;i++){ s+= this[i]; } return s; } function f(bagArr,copyArr,start){ var arrS = copyArr.sum(); if(arrS < LIMIT && arrS > bestS.val){ bestS = arrS > bestS.val ? {val:arrS,str:copyArr.join(',')} : bestS; } for(var i = start;i<bagArr.length;i++){ copyArr.push(bagArr[i]); f(bagArr,copyArr,i+1); copyArr.splice(copyArr.length-1,1); } } LIMIT = 197; f(new Array(49,28,119,50,78,48,29,49,52,48,29,49,52,48,29,49,52),new Array(),0); console.log(bestS);
相关文章
- 算法(第四版)学习笔记之java实现可以动态调整数组大小的栈
- 【算法】【字符串模块】重新排列字符串数组使得字符串数组整体顺序最小或最大
- 【算法】【字符串模块】在含有null的字符串数组中查找字符串
- 【算法】【递归与动态规划模块】两个字符串的最长公共子数组
- (《机器学习》完整版系列)第5章 神经网络——5.1 误差逆传播算法(BP算法是梯度下降法的应用)
- (《机器学习》完整版系列)第10章 降维与度量学习——10.1 k近邻算法(你是住在穷人区还是富人区?)
- 基于NSGA算法的水库端调度优化matlab仿真
- 【prony】基于prony算法的参数辨识matlab仿真
- 拉道radau伪谱算法
- AES算法的实现与分析
- Topk问题:bfprt算法预备知识: 无序数组arr,找出如果arr有序的话,第k小那个数是多少
- C#,核心基础算法——简单易用、稳定可靠的统计学常用算法之原理与源代码
- C#,初学琼林(05)——二分法查找(binary search,二分法搜索)数组内指定值的算法与源代码
- 人人网2014笔试算法题汇总
- 数组的几种排序算法的实现
- [算法]快速排序,归并排序,堆排序的数组和单链表实现
- 算法 - 排序 - 选择排序
- Java HmacSHA1算法
- [算法]归并排序
- 求数组主元素的O(n)算法
- 数据结构 | 折半查找 /二分查找 算法细节、二分查找判定树
- 浅析什么是哈希算法/散列函数/哈希函数
- 算法训练 FBI树(易懂的数组方法)
- 华为OD机试 -数组组成的最小数字(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 - 路灯照明(Python) | 机试题+算法思路+考点+代码解析 【2023】
- 算法训练 完数(vip试题)
- 【源代码】将一个整数的每位数分解并按逆序放入一个数组中(用递归算法)(C语言实现)
- 五分钟理解一致性哈希算法(consistent hashing)