关于查找数组元素数组
int[] arr1= {6, 20, 22, 35, 51, 54, 59, 74, 77, 80, 87, 94, 97};我要在查找的元素是22,此时输出结果应该是22对应的下标,以及下标-1,即【2,1】
public static int[] probalistischeArray (int[] arr, int value) {
// TODO
int min=arr[0];
int max=arr[0];
int position=0;
int a=1;
int b=1;
int c=1;
int sum=0;
String Rückgabewert="[";
for(int i=0;i<arr.length-1;i++) {
if(min>arr[i]) {
min=arr[i];
a=a+value-min;
}
if(max<arr[i]) {
max=arr[i];
b=b+max-min;
}
c=c+(arr.length)-1;
sum=sum+Math.round((c/(b/a)));
position = position+sum;
}
Rückgabewert =Rückgabewert +sum+","+(position-1);
System.out.println(Rückgabewert+"]");
public static void main(String[] args) {
int[] arr1= {6, 20, 22, 35, 51, 54, 59, 74, 77, 80, 87, 94, 97};
probalistischeArray(arr1,22);
}
return new int[]{};
}
正在回答
同学你好,按照同学如下思路:
由于数组是有序的,所以确定最小和最大值分别是第一个和最后一个,
数组的长度arr.length,
数组中最大值-最小值(arr[arr.length-1]-arr[0])
要查找的元素-最小值(value-arr[0])
代码如下:
计算出的结果是-6,-7。
按照同学的代码,是a的值为0,所以报算术异常。
建议同学确定一下公式是否正确。
祝:学习愉快~
老师,我在重新复制我写的代码
public static int[] probalistischeArray (int[] arr, int value) {
// TODO
int min=arr[0];
int max=arr[0];
int a=0;
int b=0;
int c=0;
int sum=0;
for(int i=0;i<arr.length;i++) {
if(min>arr[i]) {
min=arr[i];
a=a+value-min;
}
if(max<arr[i]) {
max=arr[i];
b=b+max-min;
}
c=c+(arr.length)-1;
if (b/a==0) {
continue;
}else{
if(b/a!=0) {
sum=sum+Math.round((c/(b/a)));
}
}
if(sum==i) {
System.out.println("["+i+","+(i-1)+"]");
}
}
return new int[]{};
}
public static void main(String[] args) { int[] arr1= {6, 20, 22, 35, 51, 54, 59, 74, 77, 80, 87, 94, 97}; probalistischeArray(arr1,22); }
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星