网站做换肤,农资网站建设,网站做seo安全吗,招聘网站套餐目录
#x1f388;LeetCode 300.最长递增子序列
#x1f388;LeetCode 674. 最长连续递增序列
#x1f388;LeetCode 718. 最长重复子数组 #x1f388;LeetCode 300.最长递增子序列
链接#xff1a;300.最长递增子序列 给你一个整数数组 nums #xff0c;找到其…目录
LeetCode 300.最长递增子序列
LeetCode 674. 最长连续递增序列
LeetCode 718. 最长重复子数组 LeetCode 300.最长递增子序列
链接300.最长递增子序列 给你一个整数数组 nums 找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序。例如[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 public int lengthOfLIS(int[] nums) {// dp[i]表示0~i下标的最长递增子序列的长度int[] dpnew int[nums.length];// for(int i0;idp.length;i){dp[i]1;}int result1;for(int i1;inums.length;i){for(int j0;ji;j){if(nums[i]nums[j]){dp[i]Math.max(dp[i],dp[j]1);}}resultresultdp[i]?result:dp[i];}return result;} LeetCode 674. 最长连续递增序列 链接674.最长连续递增序列 给定一个未经排序的整数数组找到最长且 连续递增的子序列并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 rl r确定如果对于每个 l i r都有 nums[i] nums[i 1] 那么子序列 [nums[l], nums[l 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。 迭代法比较直观 public int findLengthOfLCIS(int[] nums) {int result0;int temp1;for(int i1;inums.length;i){if(nums[i]nums[i-1]){temp;}else{resultresulttemp?result:temp;temp1;}}resultresulttemp?result:temp;return result;} 动态规划法 public int findLengthOfLCIS(int[] nums) {int[] dpnew int[nums.length];for(int i0;inums.length;i){dp[i]1;}int result1;for(int i1;inums.length;i){if(nums[i]nums[i-1]){dp[i]dp[i-1]1;}if(dp[i]result){resultdp[i];}}return result;} LeetCode 718. 最长重复子数组 链接718.最长重复子数组 给两个整数数组 nums1 和 nums2 返回 两个数组中 公共的 、长度最长的子数组的长度 。 public int findLength(int[] nums1, int[] nums2) {// dp[i][j]表示0~i下标nums1和0~j下标的nums2的最长重复子数组长度int[][] dpnew int[nums1.length1][nums2.length1];int result0;dp[0][0]0;for(int i1;inums1.length;i){for(int j1;jnums2.length;j){if(nums1[i-1]nums2[j-1]){dp[i][j]dp[i-1][j-1]1;}if(dp[i][j]result){resultdp[i][j];}}}return result;}