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

哪里有做兼职的网站室内设计师简历内容

哪里有做兼职的网站,室内设计师简历内容,网页设计策划案例,百度公司总部在哪里最长递增子序列 思路 定义状态#xff1a; 我们定义一个数组 dp#xff0c;其中 dp[i] 表示以 nums[i] 结尾的最长递增子序列的长度。初始化状态#xff1a; 对于数组中的每个元素 nums[i]#xff0c;初始时都可以被视为一个长度为1的递增子序列#xff0c;因此 dp[i] 的…最长递增子序列 思路 定义状态 我们定义一个数组 dp其中 dp[i] 表示以 nums[i] 结尾的最长递增子序列的长度。初始化状态 对于数组中的每个元素 nums[i]初始时都可以被视为一个长度为1的递增子序列因此 dp[i] 的初始值都设为1。状态转移方程 对于数组中的每个位置 i我们遍历它之前的所有位置 jj i。如果 nums[i] 大于 nums[j]说明 nums[i] 可以接在以 nums[j] 结尾的递增子序列后面形成一个更长的递增子序列。在这种情况下我们可以更新 dp[i] 为 dp[j] 1表示以 nums[i] 结尾的递增子序列长度是以 nums[j] 结尾的子序列长度加1。我们需要遍历所有 j i 的情况并取 dp[j] 1 中的最大值来更新 dp[i]。求解结果 在完成所有状态转移后dp 数组中的最大值就是最长递增子序列的长度。因为 dp[i] 存储的是以 nums[i] 结尾的最长递增子序列的长度所以最长递增子序列的实际长度可能不在数组末尾而是在数组中的某个位置。因此我们需要遍历整个 dp 数组来找到最大值这个最大值就是最长递增子序列的长度。优化空间复杂度 上述方法的空间复杂度是 O(n)因为我们需要一个大小为 n 的 dp 数组来存储状态。但实际上我们只需要知道前一个状态 dp[j] 的值来更新当前状态 dp[i]因此可以使用一个变量来替代整个数组从而将空间复杂度优化到 O(1)。实现细节 在实际编码时我们需要处理边界情况比如输入数组为空或只有一个元素的情况。在 main 方法中我们需要创建 LongestIncreasingSubsequence 类的实例并调用其 lengthOfLIS 方法来获取结果。 代码 import java.util.Scanner; //给你一个整数数组nums //找到其中最长严格递增子序列的长度 public class 最长递增子序列 {//写一个方法public int lengthOfLIS(int [] nums) {//在方法的开始我们首先处理边界情况if(numsnull || nums.length0) {return 0;}//dp[i]将存储以nums[i]结尾的最长递增子序列的长度。int[] dpnew int[nums.length];//初始化一个变量maxLength用于跟踪目前为止找到的最长递增子序列的长度int maxLength1;for(int i0;inums.length;i) {dp[i]1;//将dp[i]初始化为1因为任何元素都可以作为一个长度为1的递增子序列。for(int j0;ji;j) {//再用一个内层for循环遍历当前元素之前的所有元素。//在内层循环中我们检查当前元素nums[i]是否大于前面的元素nums[j]if(nums[i]nums[j]) {dp[i] Math.max(dp[i], dp[j]1);}}maxLengthMath.max(maxLength, dp[i]);}return maxLength;}public static void main(String[] args) {Scanner scan new Scanner(System.in);最长递增子序列 ss new 最长递增子序列();int [] nums {10,9,2,5,3,7,101,18};int result ss.lengthOfLIS(nums);System.out.println(result); } }最长递增子序列的个数 代码 import java.util.Arrays;public class 最长递增子序列的个数 {public int findNumberOfLIS(int[] nums) {if(numsnull || nums.length0) {return 0;}int nnums.length;int[] dpnew int[n];//dp[i] 存储以 nums[i] 结尾的最长递增子序列的长度int[] count new int[n];//count[i] 存储以 nums[i] 结尾的最长递增子序列的个数Arrays.fill(count, 1);//初始化count数组每个元素的最长递增子序列至少包含一个元素int maxLength 1;//最长递增子序列的长度for(int i0;in;i) {dp[i]1;for(int j0;ji;j) {if(nums[i]nums[j]) {if(dp[j]1dp[i]) {//如果发现一个更长的递增子序列更新 dp[i] 并重置 count[i] dp[i]dp[j]1;count[i]count[j];}else if(dp[j]1dp[i]){count[i] count[j];}}}maxLength Math.max(maxLength, dp[i]);}int result0;for(int i0;in;i) {if(dp[i]maxLength) {resultcount[i];}}return result;}public static void main(String[] args) {最长递增子序列的个数 solutionnew 最长递增子序列的个数();int [] nums {1,3,5,4,7};int countsolution.findNumberOfLIS(nums);System.out.println(count);}} 知识点 Arrays.fill(count, 1); 是 Java 中的一个方法调用用于将数组 count 的所有元素设置为指定的值即 1。这个方法来自于 java.util.Arrays 类是一个静态工具类提供了很多用于操作数组例如排序、搜索、填充等的静态方法。 在这个特定的情境下Arrays.fill(count, 1); 被用来初始化 count 数组。由于我们正在计算最长递增子序列的个数每个元素至少可以作为一个长度为 1 的递增子序列的结束元素。因此count 数组的每一个位置都被设置为 1意味着每个元素开始时都被视为一个独立的递增子序列。
http://www.zqtcl.cn/news/548744/

相关文章:

  • 佛山高端网站制作公司wordpress 发送邮件插件
  • 类似站酷的设计类网站网站建设需要待摊吗
  • 用php做视频网站在学做网站还不知道买什么好
  • wordpress培训类网站网站建设 好
  • 网站开发需要2个月吗网站建设案例精粹
  • 网站建设项目职责营销型网站建设五大内容
  • 建设工程监理招标网站W做网站
  • 网站建设与维护教学课件网站上线前做环境部署
  • 信誉好的网站建设做网站成为首富的外国人
  • 常州网站制作市场湖北省荆门市城乡建设网站
  • 泉州网站制作运营商专业北京软件公司招聘信息查询
  • 车床加工东莞网站建设网站建设教学改进
  • 深圳专业做网站建设西安网站建设有限公司
  • wordpress 一键建站wordpress子主题style
  • 昆明设计网站怎么做网络广告
  • 2018什么做网站深圳企业网站设
  • 北京旅游外贸网站建设博客集成wordpress
  • 中国最好的建设网站哪些网站教你做系统
  • 自己做网站别人怎么看见网站建设办公
  • 凡科做网站视频网站哪家好
  • 查询网站是否正规营销策略国内外文献综述
  • 做网页用的网站wordpress用户角色权限管理
  • 怎么查网站备案的公司wordpress 无刷新评论
  • 学前心理学课程建设网站百度极速版下载
  • 佛山做营销型网站建设深圳宝安区租房
  • 做汽车团购的网站建设营销方案有哪些
  • 做设计的网站网络公关什么意思
  • 一般课程网站要怎么做做钓鱼网站软件下载
  • 济南网站建设92jzh收不到wordpress的邮件
  • 一键优化在哪里打开新手怎么入行seo