本文最后更新于 3 分钟前,文中所描述的信息可能已发生改变。
3726. 移除十进制表示中的所有零 - 力扣(LeetCode)
题目类型
#枚举 #字符串
解题思路
参考:这道题很简单!
示例代码
python
class Solution:
def removeZeros(self, n: int) -> int:
# return int(str(n).replace("0", ""))
return int("".join(c for c in str(n) if c != "0"))3727. 最大交替平方和 - 力扣(LeetCode)
题目类型
#贪心 #排序
解题思路
参考:这道题很简单!
示例代码
python
class Solution:
def maxAlternatingSum(self, nums: List[int]) -> int:
a = [x * x for x in nums]
a.sort()
return sum(a) - 2 * sum(a[: len(nums) // 2])3728. 边界与内部和相等的稳定子数组 - 力扣(LeetCode)
题目类型
#前缀和 #哈希表
解题思路
示例代码
python
class Solution:
def countStableSubarrays(self, capacity: List[int]) -> int:
d = defaultdict(int)
pre = capacity[0]
ans = 0
for x, y in pairwise(capacity):
ans += d[(y, pre - y)]
d[(x, pre)] += 1
pre += y
return ans3729. 统计有序数组中可被 K 整除的子数组数量 - 力扣(LeetCode)
题目类型
#前缀和 #哈希表
解题思路
去重相同子数组,只有当子数组只包含一种元素时,才会出现相同的子数组。所以只要等遍历完这一段,再把对应的前缀和加到哈希表中,就能保证统计的子数组无重复
示例代码
python
class Solution:
def numGoodSubarrays(self, nums: List[int], k: int) -> int:
pre = 0
last = 0
ans = 0
cnt = defaultdict(int)
cnt[0] = 1
for i, x in enumerate(nums):
if i and x != nums[i - 1]:
v = nums[i - 1]
s = pre
for _ in range(i - last):
cnt[s % k] += 1
s -= v
last = i
pre += x
ans += cnt[pre % k]
return ans