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

买拆车件上什么网站宁波哪家做网站好

买拆车件上什么网站,宁波哪家做网站好,京东做代码的网站吗,公司做网站的费用怎么记账题目 300. 最长递增子序列 中等 相关标签 数组 二分查找 动态规划 给你一个整数数组 nums #xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列#xff0c;删除#xff08;或不删除#xff09;数组中的元素而不改变其余元素的顺序。例…题目 300. 最长递增子序列 中等 相关标签 数组   二分查找   动态规划 给你一个整数数组 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-104 nums[i] 104 进阶 你能将算法的时间复杂度降低到 O(n log(n)) 吗? 思路和解题方法 if(nums.size()1) return nums.size();特判如果数组nums长度为0或1直接返回其长度。vectorint dp(nums.size(), 1);创建一个大小为nums长度的数组dp用于存储以nums[i]结尾的最长上升子序列的长度。初始值全部赋为1因为每个元素本身也可以构成一个长度为1的上升子序列。int ans 0;初始化最长上升子序列的长度为0。for(int i 1; i nums.size(); i)从第二个元素开始遍历数组nums。for(int j 0; j i; j)在i之前的元素中找到比nums[i]小的元素。if(nums[i] nums[j])如果nums[i]大于nums[j]则可以将nums[i]加入到以nums[j]结尾的最长上升子序列中。dp[i] max(dp[i], dp[j] 1);更新以nums[i]结尾的最长上升子序列的长度。当前位置的值为前面比它小的元素中以每个元素结尾的最长上升子序列长度的最大值1。if(ans dp[i]) ans dp[i];更新最长上升子序列的长度。return ans;返回最长上升子序列的长度。 复杂度 时间复杂度: O(n*n) 时间复杂度分析 代码中使用了两重循环时间复杂度为O(n^2)。 其中内层循环每次迭代都会执行常数个操作比较和更新dp数组因此时间复杂度为O(1)。 外层循环的迭代次数为n-1因此时间复杂度为O(n)。 因此算法的总时间复杂度为O(n^2)。 空间复杂度 O(n) 空间复杂度分析 代码中使用了一个长度为n的dp数组因此空间复杂度为O(n)。 c 代码 class Solution { public:int lengthOfLIS(vectorint nums) {if(nums.size()1) return nums.size();vectorint dp(nums.size(), 1); // 创建一个dp数组用于存储以nums[i]结尾的最长上升子序列的长度默认初始为1int ans 0; // 初始化最长上升子序列的长度为0for(int i 1; i nums.size(); i) // 遍历数组nums{for(int j 0; j i; j) // 在i之前的元素中找到比nums[i]小的元素{if(nums[i] nums[j]) // 如果nums[i]大于nums[j]则可以将nums[i]加入到以nums[j]结尾的最长上升子序列中dp[i] max(dp[i], dp[j] 1); // 更新以nums[i]结尾的最长上升子序列的长度}if(ans dp[i]) // 更新最长上升子序列的长度ans dp[i];}return ans; // 返回最长上升子序列的长度} }; Java代码 class Solution {public int lengthOfLIS(int[] nums) {int[] dp new int[nums.length]; // 创建一个大小为nums.length的数组dp用于存储以nums[i]结尾的最长上升子序列的长度默认初始为1int res 0; // 初始化最长上升子序列的长度为0Arrays.fill(dp, 1); // 将dp数组中的元素全部赋值为1for (int i 1; i dp.length; i) { // 遍历数组nums从第二个元素开始for (int j 0; j i; j) { // 在i之前的元素中找到比nums[i]小的元素if (nums[i] nums[j]) { // 如果nums[i]大于nums[j]则可以将nums[i]加入到以nums[j]结尾的最长上升子序列中dp[i] Math.max(dp[i], dp[j] 1); // 更新以nums[i]结尾的最长上升子序列的长度}res Math.max(res, dp[i]); // 更新最长上升子序列的长度}}return res; // 返回最长上升子序列的长度} }觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
http://www.hkea.cn/news/14426244/

相关文章:

  • 北京做一个网站多少钱沈阳市三好街网站建设公司
  • 鄂州网站设计制作东莞大朗网站建设哪家口碑好
  • 虚拟主机 删除网站缓存二手房网站建设方案
  • 电子商务网站开发书网站假设公司排名
  • 网站建设哪里好 厦门苏州网站推
  • 陕西 建设工程有限公司网站自己电脑做的网站如何映射到公网
  • 站长之家psd素材网站建设的作业模板
  • 学做软件的网站有哪些内容代码级优化wordpress
  • 合肥做网站的网络公司wordpress 如果分类
  • 手机网站前端数据库网站
  • 个人建设网站教程网站搭建网站管理
  • 知名商城网站建设多少钱怎么做网站和服务器吗
  • 建设行政主管部门相关网站网络营销师证书含金量
  • 深圳企业网站制作报价青岛公司网站
  • 大连外贸网站网站的域名是什么意思
  • 容县建设工程交易中心网站传奇网页
  • a 朝扬网络网站建设建筑网格布厂家
  • 网站开发应用技术专业google chrome网页版
  • 查网站域名备案查询南宁网站搜索引擎优
  • 做外贸要看哪些网站好做新浪微博网站需要
  • mui做浏览器网站跳转网站商城微信支付接口
  • 网站建设登录界面代码网站砍价活动怎么做
  • 网站建设和域名什么关系wordpress播放下载
  • 网站的思维导图怎么做平面设计专业就业前景和就业方向
  • 网站推广的优劣房产网站设计模板
  • 一个新的网站怎么做SEO优化时尚网站模板代码
  • 网站建设分金手指排名十一seo 费用
  • 网站推广怎么做优化打造一个app需要多少钱
  • 网站管理模板浦口区网站建设经验丰富
  • 域名网站备案管理系统连云港网站 建设