循环数组中相邻元素的最大差值
文章目录
- 题目
- 思路
- python代码
- 复杂度
题目
给你一个 循环 数组 nums ,请你找出相邻元素之间的 最大 绝对差值。
注意:一个循环数组中,第一个元素和最后一个元素是相邻的。
提示:
- 2 <= nums.length <= 100
- -100 <= nums[i] <= 100
示例 1:
输入:nums = [1,2,4]
输出:3
解释:
由于 nums 是循环的,nums[0] 和 nums[2] 是相邻的,它们之间的绝对差值是最大值 |4 - 1| = 3 。示例 2:
输入:nums = [-5,-10,-5]
输出:5
解释:
相邻元素 nums[0] 和 nums[1] 之间的绝对差值为最大值 |-5 - (-10)| = 5 。
思路
1、先取首尾数字的绝对值
2、从下标为1的元素开始遍历,与前一个元素作差取绝对值,更新最大值;
python代码
class Solution:def maxAdjacentDistance(self, nums: List[int]) -> int:n = len(nums)max_diff = abs(nums[0] - nums[n - 1])for i in range(1, n):max_diff = max(max_diff, abs(nums[i] - nums[i - 1]))return max_diff
复杂度
- 时间复杂度O(N),N为数组长度
- 空间复杂度O(1)