comments | difficulty | edit_url |
---|---|---|
true |
简单 |
给你一个 循环 数组 nums
,请你找出相邻元素之间的 最大 绝对差值。
注意:一个循环数组中,第一个元素和最后一个元素是相邻的。
示例 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
。
提示:
2 <= nums.length <= 100
-100 <= nums[i] <= 100
我们遍历数组
时间复杂度
class Solution:
def maxAdjacentDistance(self, nums: List[int]) -> int:
return max(max(abs(a - b) for a, b in pairwise(nums)), abs(nums[0] - nums[-1]))
class Solution {
public int maxAdjacentDistance(int[] nums) {
int n = nums.length;
int ans = Math.abs(nums[0] - nums[n - 1]);
for (int i = 1; i < n; ++i) {
ans = Math.max(ans, Math.abs(nums[i] - nums[i - 1]));
}
return ans;
}
}
class Solution {
public:
int maxAdjacentDistance(vector<int>& nums) {
int ans = abs(nums[0] - nums.back());
for (int i = 1; i < nums.size(); ++i) {
ans = max(ans, abs(nums[i] - nums[i - 1]));
}
return ans;
}
};
func maxAdjacentDistance(nums []int) int {
ans := abs(nums[0] - nums[len(nums)-1])
for i := 1; i < len(nums); i++ {
ans = max(ans, abs(nums[i]-nums[i-1]))
}
return ans
}
func abs(x int) int {
if x < 0 {
return -x
}
return x
}
function maxAdjacentDistance(nums: number[]): number {
const n = nums.length;
let ans = Math.abs(nums[0] - nums[n - 1]);
for (let i = 1; i < n; ++i) {
ans = Math.max(ans, Math.abs(nums[i] - nums[i - 1]));
}
return ans;
}