代码随想录第52天|300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组
发布人:shili8
发布时间:2025-01-08 01:51
阅读次数:0
**代码随想录第52天 |300. 最长递增子序列**
**674. 最长连续递增序列**
**718. 最长重复子数组**
### 最长递增子序列 (Longest Increasing Subsequence, LIS)
最长递增子序列是指一个序列中,所有元素都是递增的,并且长度最长的子序列。
####问题描述给定一个整数数组 `nums`,请找到最长递增子序列的长度。
#### 示例* 输入:`nums = [10,9,2,5,3,7,101,18]`
输出:`4`
### 最长连续递增序列 (Longest Continuous Increasing Sequence)
最长连续递增序列是指一个序列中,所有元素都是递增的,并且长度最长的连续子序列。
####问题描述给定一个整数数组 `nums`,请找到最长连续递增序列的长度。
#### 示例* 输入:`nums = [1,17,23,2,19,24,8,21,4,10,12,11,13,14,3]`
输出:`9`
### 最长重复子数组 (Longest Repeating Subarray)
最长重复子数组是指一个序列中,所有元素都是相同的,并且长度最长的子数组。
####问题描述给定两个整数数组 `nums1` 和 `nums2`,请找到最长重复子数组的长度。
#### 示例* 输入:`nums1 = [1,2,3,4]`, `nums2 = [2,3,4,5]`
输出:`3`
### 解决方案#### 最长递增子序列 (LIS)
我们可以使用动态规划来解决这个问题。我们首先定义一个数组 `dp`,其中 `dp[i]` 表示以 `nums[i]` 为结尾的最长递增子序列的长度。
def lengthOfLIS(nums): if not nums: return0 dp = [1] * len(nums) for i in range(1, len(nums)): for j in range(i): if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j] +1) return max(dp)
#### 最长连续递增序列 (LCIS)
我们可以使用滑动窗口来解决这个问题。我们首先定义一个变量 `max_len`,用于存储最长连续递增序列的长度。
def longestContinuousIncreasingSequence(nums): if not nums: return0 max_len =1 current_len =1 for i in range(1, len(nums)): if nums[i] > nums[i -1]: current_len +=1 else: max_len = max(max_len, current_len) current_len =1 return max(max_len, current_len)
#### 最长重复子数组 (LRS)
我们可以使用动态规划来解决这个问题。我们首先定义两个数组 `dp1` 和 `dp2`,其中 `dp1[i]` 和 `dp2[j]` 表示以 `nums1[i]` 和 `nums2[j]` 为结尾的最长重复子数组的长度。
def findLength(nums1, nums2): if not nums1 or not nums2: return0 dp1 = [1] * len(nums1) dp2 = [1] * len(nums2) for i in range(1, len(nums1)): for j in range(1, len(nums2)): if nums1[i] == nums2[j]: dp1[i] = max(dp1[i], dp1[i -1] +1) dp2[j] = max(dp2[j], dp2[j -1] +1) return max(max(dp1), max(dp2))
### 总结在本文中,我们分别讨论了最长递增子序列、最长连续递增序列和最长重复子数组三个问题。我们使用动态规划和滑动窗口来解决这些问题,并提供了示例代码。
最长递增子序列是指一个序列中,所有元素都是递增的,并且长度最长的子序列。我们可以使用动态规划来解决这个问题。
最长连续递增序列是指一个序列中,所有元素都是递增的,并且长度最长的连续子序列。我们可以使用滑动窗口来解决这个问题。
最长重复子数组是指一个序列中,所有元素都是相同的,并且长度最长的子数组。我们可以使用动态规划来解决这个问题。
这些问题在实际应用中非常重要,因为它们可以帮助我们分析和处理数据,找出模式和趋势。
### 参考* [最长递增子序列]( />* [最长连续递增序列]( />* [最长重复子数组](