当前位置: 首页 > news >正文

提供有经验的网站建设百度关键词推广怎么做

提供有经验的网站建设,百度关键词推广怎么做,成都app推广公司,织梦网站定时300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums #xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列#xff0c;删除#xff08;或不删除#xff09;数组中的元素而不改变其余元素的顺序。例如#xff0c;[3,6,2…300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums 找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序。例如[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1 输入nums [10,9,2,5,3,7,101,18]输出4解释最长递增子序列是 [2,3,7,101]因此长度为 4 。 示例 2 输入nums [0,1,0,3,2,3]输出4 示例 3 输入nums [7,7,7,7,7,7,7]输出1 提示 1 nums.length 2500-10^4 nums[i] 104 #算法公开课 《代码随想录》算法视频公开课 (opens new window)动态规划之子序列问题元素不连续| LeetCode300.最长递增子序列 (opens new window)相信结合视频再看本篇题解更有助于大家对本题的理解。 #思路 首先通过本题大家要明确什么是子序列“子序列是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序”。 本题也是代码随想录中子序列问题的第一题如果没接触过这种题目的话本题还是很难的甚至想暴力去搜索也不知道怎么搜。 子序列问题是动态规划解决的经典问题当前下标i的递增子序列长度其实和i之前的下表j的子序列长度有关系那又是什么样的关系呢。 接下来我们依然用动规五部曲来详细分析一波 dp[i]的定义 本题中正确定义dp数组的含义十分重要。 dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 为什么一定表示 “以nums[i]结尾的最长递增子序” 因为我们在 做 递增比较的时候如果比较 nums[j] 和 nums[i] 的大小那么两个递增子序列一定分别以nums[j]为结尾 和 nums[i]为结尾 要不然这个比较就没有意义了不是尾部元素的比较那么 如何算递增呢。 状态转移方程 位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 1 的最大值。 所以if (nums[i] nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较而是我们要取dp[j] 1的最大值。 dp[i]的初始化 每一个i对应的dp[i]即最长递增子序列起始大小至少都是1. 确定遍历顺序 dp[i] 是有0到i-1各个位置的最长递增子序列 推导而来那么遍历i一定是从前向后遍历。 j其实就是遍历0到i-1那么是从前到后还是从后到前遍历都无所谓只要吧 0 到 i-1 的元素都遍历了就行了。 所以默认习惯 从前向后遍历。 遍历i的循环在外层遍历j则在内层代码如下 for (int i 1; i nums.size(); i) {for (int j 0; j i; j) {if (nums[i] nums[j]) dp[i] max(dp[i], dp[j] 1);}if (dp[i] result) result dp[i]; // 取长的子序列 }1 2 3 4 5 6 举例推导dp数组 输入[0,1,0,3,2]dp数组的变化如下 如果代码写出来但一直AC不了那么就把dp数组打印出来看看对不对 以上五部分析完毕C代码如下 class Solution { public:int lengthOfLIS(vectorint nums) {if (nums.size() 1) return nums.size();vectorint dp(nums.size(), 1);int result 0;for (int i 1; i nums.size(); i) {for (int j 0; j i; j) {if (nums[i] nums[j]) dp[i] max(dp[i], dp[j] 1);}if (dp[i] result) result dp[i]; // 取长的子序列}return result;} };1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 时间复杂度: O(n^2)空间复杂度: O(n) #总结 本题最关键的是要想到dp[i]由哪些状态可以推出来并取最大值那么很自然就能想到递推公式dp[i] max(dp[i], dp[j] 1); 子序列问题是动态规划的一个重要系列本题算是入门题目好戏刚刚开始 #其他语言版本 #Java class Solution {public int lengthOfLIS(int[] nums) {int[] dp new int[nums.length];int res 0;Arrays.fill(dp, 1);for (int i 1; i dp.length; i) {for (int j 0; j i; j) {if (nums[i] nums[j]) {dp[i] Math.max(dp[i], dp[j] 1);}res Math.max(res, dp[i]);}}return res;} }
http://www.yutouwan.com/news/121595/

相关文章:

  • 做网站上传信息软件上海公司买车需要什么条件
  • 建设网站技术公司电话号码桂林旅游网站制作公司
  • 家居装饰网站设计论文永久免费crm客户管理系统
  • 网站建设什么好wordpress官网无法注册
  • 网站建设成交话术搜索引擎营销的四种方式
  • 佛山小网站建设WordPress多域名登录
  • 怎么在windows做网站家居东莞网站建设
  • 辽宁公司网站建设移动互联网开发心得体会
  • 一级a做爰片免费网站 小说网站重做
  • 网站收录突然全部没有了不死鸟分享友情链接
  • 南京集团网站建设网站建设的基本费用
  • 乡镇中心小学校园网站建设指南联系客户做网站
  • 无锡网络推广公司哪家好手机端关键词排名优化软件
  • 公司主网站百度收录大量网站之类的信息网上医疗和医院网站建设
  • 国外html响应式网站模板合肥网站建设怎么做
  • 做证书的网站做图片赚钱的网站
  • 网站开发的付款方式烟台网站seo
  • 做果盘网站微营销是什么合法吗
  • 如何推广公司网站上海网站设计公司
  • 免费建站的平台服装线上结合线下的推广方案
  • 罗定微网站建设做小程序的流程
  • 南京网站建设服务西安seo网站排名优化公司
  • 专业建站公司电话咨询常州做网站的公司
  • 网站建设开什么名目免费诶网站建设
  • 聊天室网站模板辽源做网站的公司
  • 网站营销 优势图跃网站建设
  • 网站如何做背景音乐门户网站内容建设
  • 招聘网站的建设南宁logo设计公司
  • 2个域名指向同一个网站什么是网络营销公司
  • 创造你魔法官方网站起做欢的事在网站做博客