栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

最长回文字串、最长递增子序列、最长连续子数组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最长回文字串、最长递增子序列、最长连续子数组

class Solution:
    def longestPalindrome(self, s: str) -> str:

        if not s:
            return ''

        dp = [[False for i in range(len(s))]for i in range(len(s))]

        for i in range(len(s)):
            dp[i][i] = True
        cur_start_index = 0
        max_length = 1
        for j in range(1,len(s)):
            for i in range(j):
                if s[i] == s[j]:
                    if j-i < 3:
                        dp[i][j] = True
                    else:
                        dp[i][j] = dp[i+1][j-1]
                if dp[i][j]:
                    cur_length = j-i+1
                    if cur_length > max_length:
                        max_length = cur_length
                        cur_start_index = i
        return s[cur_start_index:cur_start_index+max_length]

class Solution:
    def lengthOfLIS(self, nums: List[int]) -> int:

        dp = [1 for i in range(len(nums))]

        for i in range(1,len(nums)):
            for j in range(i):
                if nums[j] < nums[i]:
                    dp[i] = max(dp[j] + 1,dp[i])
        return max(dp)

3、最长连续子数组

class Solition:
	def maxlength(self,arr):
		if len(arr) == 0:
			return 0
		if len(arr) == 1:
			return 1
		res = []
		length = 0
		for i in srr:
			while i in res:
				res.pop(0)
			res.append(i)
			length = max(length,len(res))
		return length
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/296161.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号