示比方下:
- 输入: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;
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |