在数列 a_1, a_2, ..., a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|, 即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值。
2020-05-11 04:10
701 查看
题目
在数列 a_1, a_2, ..., a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|,
即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值。
给定一个数列,请问找出元素之间最大的元素距离。
输入格式
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a_1, a_2, ..., a_n,相邻的整数间用空格分隔,表示给定的数列。
输出格式
输出一行包含一个整数,表示答案。
样例输入
5
9 4 2 4 7
题目分析
分析题目,这道题中的只需要定义两个移动的值,让数组中每两个数都去进行计算(比较像两个指针不定的移动取值),最后计算把最大的值存放到max中,然后输出。
代码分析
[code]public static void main(String [] args) { Scanner sc = new Scanner(System.in) ; int n = sc .nextInt(); int[] m = new int ; for(int i=0 ; i<m.length ; i++ ) { m[i] = sc.nextInt(); } int max = 0; for(int i=0; i<m.length ; i++) { for(int j =i+1; j<m.length ; j++) { int arr = Math.abs(i-j) + Math.abs(m[i]-m[j]); if(max<=arr) { max = arr; } } } System.out.println(max); }
小剧场:只要不停下,就会有进步!
看-清 原创文章 27获赞 1访问量 825 关注 私信相关文章推荐
- A的大小为n,其中的每相邻的两个元素之间差的绝对值为1,例如A={4 5 6 5 6 7 8 9 10 9},给定A和t,设计一个程序,求出t在A中的位置
- 5-8: 输入一个5行、6列的数组,找出该数组中绝对值最大的元素,输出该元素及其两个下标值
- A的大小为n,其中的每相邻的两个元素之间差的绝对值为1
- 已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来
- 一个中兴的面试题,输入两个数n和m,从数列1,2,3……n中随意取几个数,使其和等于m,要求将其中所有组合列出来编程求解(c语言递归函数分解法)
- 数组A中任意两个相邻元素大小相差1,在其中查找某个数。
- C++ - 一个非递减数组,下标从0到n,元素的取值范围为从0到n的整数,判断其中是否有重复元素
- 两个集合有共同元素,其中一个集合删除两个集合共同的元素
- UML的定义包括UML语义和UML表示法两个部分
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来
- 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
- 三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的宏,一个用来求area, 另一个宏用来求S。 写程序,在程序中用带
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
- 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值
- 输入两个整数n和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m,要求将其中所有的可能组合列出来。
- 如下两个div元素垂直距离是多少?
- 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];
- 【练习】输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序