LeetCode 3423. 循环数组中相邻元素的最大差值 题解

示例如下:

复制代码
输入:nums = [1,2,4]

输出:3

解释:

由于 nums 是循环的,nums[0] 和 nums[2] 是相邻的,它们之间的绝对差值是最大值 |4 - 1| = 3。

其实就是把该数组相像成一个闭环的圈形数组,首尾相连,那么我们只需要分类讨论即可,第一点是当遍历头节点i=0时,其左节点是i=n-1,其右节点是i=1,第二点是当遍历尾节点i=n-1时,其左节点是i=n-2,右节点是i=0,第三点是正常遍历i,其左节点是i-1,右节点是i+1,所以代码如下

复制代码
class Solution {
    public int maxAdjacentDistance(int[] nums) {
        int n = nums.length;
        int l=0;
        int r=0;
        int max = 0;
        int ans = 0;
        for(int i=0;i<n;i++){
            if(i==0){
                l=n-1;
                r=1;
            }
            else if(i==n-1){
                l=n-2;
                r=0;
            }
            else{
                l=i-1;
                r=i+1;
            }
            max = Math.max(Math.abs(nums[l]-nums[i]),Math.abs(nums[r]-nums[i]));
            ans = Math.max(max,ans);
        }
        return ans;
    }
}
相关推荐
yuhao__z30 分钟前
代码随想录算法训练营第五十六天| 图论2—卡码网99. 岛屿数量(dfs & bfs)
算法·深度优先·图论
小wanga1 小时前
【算法专题十】哈希表
算法·哈希算法·散列表
独行soc3 小时前
2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
linux·运维·服务器·学习·面试·职场和发展·渗透测试
S01d13r3 小时前
LeetCode 解题思路 45(分割等和子集、最长有效括号)
算法·leetcode·职场和发展
理想奋斗中5 小时前
【LeetCode Hot100 | 每日刷题】二叉树的层序遍历
算法·leetcode·bfs
阳洞洞5 小时前
leetcode 24. 两两交换链表中的节点
数据结构·leetcode·链表
JCBP_6 小时前
C++(1)
开发语言·c++·算法
数据与人工智能律师6 小时前
互联网法院在NFT、元宇宙等新兴领域的规则创新
大数据·网络·人工智能·算法·区块链
知识漫步7 小时前
代码随想录算法训练营第60期第二十八天打卡
算法
chao_7897 小时前
手撕算法(1)
算法