假设我们有一个称为nums的数字列表,我们必须找到该列表从正斜率变为负斜率或从负斜率变为正斜率的次数。
因此,如果输入类似于[2、4、10、18、6、11、13],则输出将为2,因为它将方向更改为10(正到负),然后更改为6(从负到正)。
为了解决这个问题,我们将遵循以下步骤-
为了解决这个问题,我们将遵循以下步骤-
对于范围从1到nums的i-1,执行
数:=数+ 1
如果nums [i-1] <nums [i]> nums [i + 1]或nums [i-1]> nums [i] <nums [i + 1],则
返回计数
让我们看下面的实现以更好地理解-
class Solution: def solve(self, nums): count = 0 for i in range(1, len(nums) - 1): if nums[i - 1] < nums[i] > nums[i + 1] or nums[i - 1] > nums[i] < nums[i + 1]: count += 1 return count ob = Solution()print(ob.solve([2, 4, 10, 18, 6, 11, 13]))
[2, 4, 10, 18, 6, 11, 13]
输出结果
2