欢迎光临散文网 会员登陆 & 注册

Leetcode Day14 1

2022-04-18 15:07 作者:我喜欢喝一点点  | 我要投稿

479. 最大回文数乘积

给定一个整数 n ,返回 可表示为两个 n 位整数乘积的 最大回文整数 。因为答案可能非常大,所以返回它对 1337 取余 。


 


示例 1:


输入:n = 2

输出:987

解释:99 x 91 = 9009, 9009 % 1337 = 987

示例 2:


输入: n = 1

输出: 9


本来想自己暴力做的,结果:


res百分百放不进……遂放弃

遇事不决看题解吧

class Solution:
   def largestPalindrome(self, n: int) -> int:
       max=pow(10,n)-1
       min=pow(10,n-1)
       for i in range(max,0,-1):
           num=i
           t=i
           while t:
               num=num*10+(t%10)
               t//=10   # 翻转左半部分到其自身末尾,构造回文数 p
           for j in range(max,0,-1):
               if j*j<num:
                   break #降低时间复杂度,因为乘法交换律
               else:
                   if num%j==0:
                       return int(num%1337)
       return -1

res=Solution()
res.largestPalindrome(2)



Leetcode Day14 1的评论 (共 条)

分享到微博请遵守国家法律