• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

给定一个数列,请问找出元素之间最大的元素距离

题目

在数列 a_1, a_2, …, a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|,即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值。给定一个数列,请问找出元素之间最大的元素距离。

代码

先输入数列内容的数量,然后再输入数列内容。

import java.util.*;

public class zuoye9_27_2 {

    public static void main(String[] args) {

        System.out.println(distance(read()));



    }

    public static int distance(int[] a) {

        int i=0,j=0,abs=0,max=0;

        for(i=0;i<a.length;i++)

            for(j=0;j<a.length;j++)

            {

               abs=Math.abs(i-j)+Math.abs(a[i]-a[j]);

                if(max<abs)

                    max=abs;

            }

        return max;

    }

    public static int[] read() {

        Scanner reader=new Scanner(System.in);

        int n;

        n=reader.nextInt();

        int[] a=new int[n];

        for(int i=0;i<n;i++)

        {

            a[i]=reader.nextInt();

        }

        return a;

    }

}

输出

 输入

先输入数列内容的数量,然后再输入数列内容。

5
9  4 2 4 7

posted on 2022-04-12 20:02  王陈锋  阅读(30)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3