题目:
解析:
这里求最长递增子序列的长度,请看这篇博客: 动态规划子序列问题系列一>最长递增子序列-CSDN博客
这里主要运用:一个小贪心+状态转移方程的分析方法****完成该题
代码:
javapublic int findNumberOfLIS(int[] nums) { int n = nums.length; int[] len = new int[n]; int[] count = new int[n]; //初始化 for(int i = 0; i < n; i++) len[i] = count[i] = 1; int countMaxVal = 1; int lenMaxVal = 1; for(int i = 1; i < n; i++){ 利用小贪心算法,一边跟新最大长度,一边跟新最大个数 for(int j = 0; j <= i-1; j++){ if(nums[j] < nums[i]){ if(len[j]+1 == len[i]) count[i] += count[j];//计数目前最长递增子序列的个数 else if(len[j]+1 > len[i]){ /** 重新计数 */ len[i] = len[j]+1;//更新最大长度 count[i] = count[j];//更新最大长度的个数 } } } //返回结果也是,利用小贪心算法,一边跟新最大长度,一边跟新最大个数 if(len[i] == lenMaxVal) countMaxVal += count[i]; else if(len[i] > lenMaxVal){ lenMaxVal = len[i]; countMaxVal = count[i]; } } return countMaxVal; }
动态规划子序列问题系列一>最长递增子序列的个数
robin_suli2024-12-14 15:41
相关推荐
用户938515635071 天前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”To_OC1 天前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑饼干哥哥1 天前
Reddit VOC调研太慢?搭一个AI专家团队半小时洞察任何品类|以猫用饮水机为例地平线开发者1 天前
Transformer模型部署之性能优化指南地平线开发者1 天前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子半个落月1 天前
从递归到快速排序:用 JavaScript 把分治思想讲明白小月土星1 天前
JavaScript 快速排序:从 pivot、双指针到分治思想小月土星1 天前
JavaScript 递归入门:从 1 到 n 求和,再到数组扁平化To_OC2 天前
LC 1 两数之和:面试第一道必考题,暴力解法直接被面试官 pass
