要找到给定数字序列的最长递增子序列(LIS)的长度,可以使用动态规划或二分查找结合动态规划的方法。以下是这两种方法的简要说明和实现:
动态规划方法的时间复杂度为 O ( n 2 ),其中 n 是序列的长度。
dp[i] 表示以第
i 个元素结尾的最长递增子序列的长度。dp[i] 都为 1,因为每个元素自身可以构成一个长度为 1 的递增子序列。dp 数组中的最大值即为最长递增子序列的长度。pythonCopy Codedef length_of_LIS(nums): if not nums: return 0 n = len(nums) dp = [1] * n for i in range(1, n): for j in range(i): if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j] + 1) return max(dp)# 示例nums = [10, 9, 2, 5, 3, 7, 101, 18]print(length_of_LIS(nums)) # 输出: 4
这种方法的时间复杂度为 O ( n lo g n ),更为高效。
tails:
tails[i] 表示长度为
i+1 的所有递增子序列的结尾元素的最小值。x,用二分查找在
tails 中找到第一个大于等于
x 的位置
pos。x 大于
tails 中的所有元素,则将
x 添加到
tails 的末尾,表示找到了一个更长的递增子序列。tails[pos] = x,以保持
tails 的最优性(即结尾元素尽可能小)。tails 的长度即为最长递增子序列的长度。pythonCopy Codefrom bisect import bisect_leftdef length_of_LIS(nums): tails = [] for x in nums: pos = bisect_left(tails, x) if pos == len(tails): tails.append(x) else: tails[pos] = x return len(tails)# 示例nums = [10, 9, 2, 5, 3, 7, 101, 18]print(length_of_LIS(nums)) # 输出: 4
这两种方法都可以有效地找到最长递增子序列的长度,选择哪种方法取决于具体需求和性能考虑。
http://travel.zgjzs.org
http://hotel.zgjzs.org
http://food.zgjzs.org
http://tech.zgjzs.org
http://health.zgjzs.org
http://edu.zgjzs.org
http://music.zgjzs.org
http://sports.zgjzs.org
http://fashion.zgjzs.org
http://auto.zgjzs.org
http://finance.zgjzs.org
http://law.zgjzs.org
http://art.zgjzs.org
http://book.zgjzs.org
http://movie.zgjzs.org
http://game.zgjzs.org
http://job.zgjzs.org
http://house.zgjzs.org
http://kids.zgjzs.org
http://pet.zgjzs.org
http://beauty.zgjzs.org
http://garden.zgjzs.org
http://science.zgjzs.org
http://history.zgjzs.org
http://culture.zgjzs.org
http://city.zgjzs.org
http://weather.zgjzs.org
http://map.zgjzs.org
http://data.zgjzs.org
http://energy.zgjzs.org
http://eco.zgjzs.org
http://farm.zgjzs.org
http://market.zgjzs.org
http://trade.zgjzs.org
http://service.zgjzs.org
http://club.zgjzs.org
http://event.zgjzs.org
http://festival.zgjzs.org
http://expo.zgjzs.org
http://museum.zgjzs.org
http://library.zgjzs.org
http://school.zgjzs.org
http://hospital.zgjzs.org
http://bank.zgjzs.org
http://insurance.zgjzs.org
http://stock.zgjzs.org
http://invest.zgjzs.org
http://tour.zgjzs.org
http://electronics.shangpin.org
http://clothing.shangpin.org
http://furniture.shangpin.org
http://jewelry.shangpin.org
http://cosmetic.shangpin.org
http://digital.shangpin.org
http://appliance.shangpin.org
http://outdoor.shangpin.org
http://sporting.shangpin.org
http://luxury.shangpin.org
http://grocery.shangpin.org
http://office.shangpin.org
http://tool.shangpin.org
http://craft.shangpin.org
http://antique.shangpin.org
http://collectible.shangpin.org
http://handmade.shangpin.org
http://organic.shangpin.org
http://baby.shangpin.org
http://watch.shangpin.org
http://bag.shangpin.org
http://shoe.shangpin.org
http://glass.shangpin.org
http://ceramic.shangpin.org
http://textile.shangpin.org
http://metal.shangpin.org
http://wood.shangpin.org
http://stone.shangpin.org
http://plastic.shangpin.org
http://paper.shangpin.org
http://ink.shangpin.org
http://paint.shangpin.org
http://lighting.shangpin.org
http://kitchen.shangpin.org
http://bath.shangpin.org
http://bed.shangpin.org
http://sofa.shangpin.org
http://carpet.shangpin.org
http://curtain.shangpin.org
http://lamp.shangpin.org
http://mirror.shangpin.org
http://clock.shangpin.org
http://vase.shangpin.org
http://frame.shangpin.org
http://toy.shangpin.org
http://instrument.shangpin.org
http://plant.shangpin.org
http://gift.shangpin.org
http://business.snjrw.org
http://media.snjrw.org
http://design.snjrw.org
http://photo.snjrw.org
http://video.snjrw.org
http://studio.snjrw.org
http://network.snjrw.org
http://cloud.snjrw.org
http://career.snjrw.org
http://learning.snjrw.org
http://research.snjrw.org
http://innovation.snjrw.org
http://project.snjrw.org
http://solution.snjrw.org
http://global.snjrw.org
http://local.snjrw.org
http://china.snjrw.org
http://asia.snjrw.org
http://europe.snjrw.org
http://america.snjrw.org
http://africa.snjrw.org
http://ocean.snjrw.org
http://space.snjrw.org
http://earth.snjrw.org
http://nature.snjrw.org
http://green.snjrw.org
http://future.snjrw.org
http://ai.snjrw.org
http://robot.snjrw.org
http://vr.snjrw.org
http://ar.snjrw.org
http://iot.snjrw.org
http://blockchain.snjrw.org
http://crypto.snjrw.org
http://nft.snjrw.org
http://metaverse.snjrw.org
http://smart.snjrw.org
http://safe.snjrw.org
http://privacy.snjrw.org
http://security.snjrw.org
http://trust.snjrw.org
http://quality.snjrw.org
http://certified.snjrw.org
http://premium.snjrw.org
http://elite.snjrw.org
http://vip.snjrw.org
http://prime.snjrw.org
http://gold.snjrw.org
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040412/viewspace-3084021/ ,如需转载,请注明出处,否则将追究法律责任。