我有一个包含9个元素的数组,其中8个元素具有相同的值,1个具有不同的值。问题是你只有两个if语句吗?
int main(){
int array[9];
for(int x=0;x<9;x++)
{
cin>>array[x];
}
if(){}
if(){}
cout<<"The number which is different is at ? position"
}
答案 0 :(得分:2)
int[] myArray = new int[]{1, 1, 2, 1, 1, 1, 1, 1, 1};
Arrays.sort(myArray);
int indexOfdifferentValue = -1;
if(myArray[0] == myArray[1]){
indexOfdifferentValue = myArray.length - 1;
}else{
indexOfdifferentValue = 0;
}
int result = myArray[indexOfdifferentValue];
看看是否有效。
好的,也许这是一个肮脏的解决方案。它不是一般解决方案,它只是为了解决您的情况。检查这是否适合您。
public static void main(String[] args) {
int position = 0;
int[] array = new int[]{1, 1, 1,
1, 2, 1,
1, 1, 1};
// for(int x=0; x<9; x++){
// cin>>array[x];
// }
if((array[position] == array[++position])
&& (array[++position] == array[++position])
&& (array[++position] == array[++position])
&& (array[++position] == array[++position])){
position = position + 1;
}
if(position != (array.length - 1) && array[position] == array[position + 1]){
position = position - 1;
}
System.out.println("The number which is different is at ? position: " + (position + 1) + ", index: " + position + ", value: " + array[position]);
}