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

打印 上一主题 下一主题

主题 1907|帖子 1907|积分 5721


示比方下:
  1. 输入:nums = [1,2,4]
  2. 输出:3
  3. 解释:
  4. 由于 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,以是代码如下
  1. class Solution {
  2.     public int maxAdjacentDistance(int[] nums) {
  3.         int n = nums.length;
  4.         int l=0;
  5.         int r=0;
  6.         int max = 0;
  7.         int ans = 0;
  8.         for(int i=0;i<n;i++){
  9.             if(i==0){
  10.                 l=n-1;
  11.                 r=1;
  12.             }
  13.             else if(i==n-1){
  14.                 l=n-2;
  15.                 r=0;
  16.             }
  17.             else{
  18.                 l=i-1;
  19.                 r=i+1;
  20.             }
  21.             max = Math.max(Math.abs(nums[l]-nums[i]),Math.abs(nums[r]-nums[i]));
  22.             ans = Math.max(max,ans);
  23.         }
  24.         return ans;
  25.     }
  26. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表