给出了整数数组。甚至数字应该在偶数索引中,奇数应该在奇数索引中。你必须检查给定的数组是否满足该条件。
我的实施就在这里......
public void isSatisfied(int [] arr){
for(int i=0;i<arr.length;i++){
int r_val=arr[i]%2;
int r_index=i%2;
if((r_val==1)&&(r_index==1)){
if(i==arr.length-1){
System.out.println("yes");
}
continue;
}
else if((r_val==0)&&(r_index==0)){
if(i==arr.length-1){
System.out.println("yes");
}
continue;
}
else{
System.out.println("no");
break;
}
}
}
什么是最佳实施?
答案 0 :(得分:4)
特定索引和该索引值的总和必须偶数,否则数组不满足您的条件:
public boolean isSatisfied(int[] arr)
{
for (int i = 0; i < arr.length; i++)
{
if ((i + arr[i]) % 2 != 0)
return false;
}
return true;
}
答案 1 :(得分:1)
public void isSatisfied(int [] arr){
for(int i=0;i<arr.length;i++){
int r_val=arr[i]%2;
int r_index=i%2;
if(r_val!=r_index){
System.out.println("no");
return;
}
}
System.out.println("yes");
}
答案 2 :(得分:1)
“最佳”通常是一种观点。你的代码足够好了,这里有一些提示:
1)不要将逻辑与演示混合。在循环中,将状态(数组是否正确)保存到布尔变量。在循环之后,根据变量打印任何你想要的东西(所以你不会重复几次“是”(并且可能跟着“不”),这会让我感到困惑。
2)如果您使用if-else-if
构造,则不需要continue
。使用另一种形式来提高可读性。
答案 3 :(得分:0)
让名为isX
的方法返回boolean
更有意义。
public boolean isSatisfied(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (i % 2 == 0 && arr[i] % 2 != 0)
return false;
if (i % 2 == 1 && arr[i] % 2 == 0)
return false;
}
return true;
}
答案 4 :(得分:0)
这只是代码的一个小修改版本。 包com.mtk;
public class ArrayTest {
public static void main(String[] args) {
int[] arr = {2,3,4,5,6};
isSatisfied(arr);
}
private static void isSatisfied(int[] arr) {
// TODO Auto-generated method stub
for (int i = 0; i < arr.length; i++) {
if( i%2 == 0 && arr[i]%2 == 0) ; // do nothing
else if (i%2 == 1 && arr[i]%2 == 1) ; // do nothing
else {
System.out.println("No");
return;
}
}
System.out.println("Yes");
}
}