采用dp思想,两层for循环处理res数组,故时间复杂度为O(n^2) 五、心得体会 dp问题最重要的还是要找到问题的最优解子结构,然后建立递推关系,确定好填表的顺序。 多打题,才能提高、加深对算法的理解。
子串是一个字符串中连续的一部分,而子列是字符串中保持字符顺序的一个子集,可以连续也可以不连续。例如给定字符串 atpaaabpabtt,pabt是一个子串,而 pat 就是一个子列。 现给定一个字符串 S 和一个子列 P,本题就请你找到 S 中包含 P 的最短子串。若解不唯一,则输出起点最靠左边的解。 输入格式: 输入在...
# n, MAXP = map(int,"5 1000".split()) # n, MAXP = map(int,"10 2".split()) import math def isSushu(input:int)->bool: if input == 2 or input == 3 or input == 1: return True sqrtInt = int(math.sqrt(input)) for i in range(2,sqrtInt+1): if input%i == 0: ret...
n,MAXP=map(int,input().split())# n,MAXP=map(int,"5 1000".split())# n,MAXP=map(int,"10 2".split())importmath defisSushu(input:int)->bool:ifinput==2or input==3or input==1:returnTrue sqrtInt=int(math.sqrt(input))foriinrange(2,sqrtInt+1):ifinput%i==0:returnFalsereturnT...