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;
    }
}
相关推荐
测试19985 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
心中有国也有家9 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
绝知此事9 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
碧海银沙音频科技研究院9 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
csdn_aspnet10 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
一只机电自动化菜鸟11 小时前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计
m0_6294947312 小时前
LeetCode 热题 100-----26.环形链表 II
数据结构·算法·leetcode·链表
壹号用户13 小时前
用队列实现栈
数据结构·算法
做人求其滴13 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣