lc1630. 等差子数组

题目链接:1630. 等差子数组 - 力扣(LeetCode)

题解

暴力枚举,判断一个区间是否是等差数列可以优化,(arr_max - arr_mix)/arr_len 应该能整除且结果为公差,所以可以优化到 O(n)

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def checkArithmeticSubarrays(self, nums: List[int], l: List[int], r: List[int]) -> List[bool]:
ans = []
n = len(l)
for i in range(n):
tmp = nums[l[i]:r[i]+1]
tmp.sort()
ok = 1
g = tmp[1] - tmp[0]
for j in range(1, len(tmp)):
if tmp[j] - tmp[j-1] != g:
ok = 0
break
if ok:
ans.append(True)
else:
ans.append(False)
return ans
作者

Ryen Xiang

发布于

2024-05-30

更新于

2024-05-30

许可协议


网络回响

评论