本文最后更新于 2 分钟前,文中所描述的信息可能已发生改变。
3722. 反转后字典序最小的字符串 - 力扣(LeetCode)
题目类型
#枚举 #后缀数组
解题思路
参考:这道题很简单!
示例代码
python
class Solution:
def lexSmallest(self, s: str) -> str:
ans = s
for i in range(1, len(s) + 1):
t = s[:i][::-1] + s[i:]
ans = min(ans, t)
t = s[:i] + s[i:][::-1]
ans = min(ans, t)
return ans3723. 数位平方和的最大值 - 力扣(LeetCode)
题目类型
#贪心 #枚举
解题思路
参考:这道题很简单!
示例代码
python
class Solution:
def maxSumOfSquares(self, num: int, sum: int) -> str:
ans = [0] * num
for i in range(num):
t = min(sum, 9)
ans[i] = t
sum -= t
if sum:
return ""
return "".join(map(str, ans))3724. 转换数组的最少操作次数 - 力扣(LeetCode)
题目类型
#贪心 #分类讨论
解题思路
参考:这道题很简单!
示例代码
python
class Solution:
def minOperations(self, nums1: List[int], nums2: List[int]) -> int:
ans = 1
res = inf
for x, y in zip(nums1, nums2[:-1]):
ans += abs(x - y)
if x <= nums2[-1] <= y or y <= nums2[-1] <= x:
res = 0
else:
res = min(res, abs(x - nums2[-1]), abs(y - nums2[-1]))
return ans + res3725. 统计每一行选择互质整数的方案数 - 力扣(LeetCode)
题目类型
#DP #倍数容斥
解题思路
简单的多维 DP,基于 GCD 进行转移,查表法转移方程如下:
刷表法转移方程如下:
示例代码
python
class Solution:
def countCoprime(self, mat: List[List[int]]) -> int:
MOD = 1_000_000_007
n, m = len(mat), len(mat[0])
f = [0] * 151
for x in mat[0]:
f[x] += 1
for i in range(1, n):
nf = [0] * 151
for j in range(1, 151):
for k in range(m):
g = gcd(j, mat[i][k])
nf[g] = (nf[g] + f[j]) % MOD
f = nf[:]
return f[1]