简单的Java数组问题

时间:2011-05-15 05:15:06

标签: java arrays

Codingbat.com array question

这是一个简单的数组问题,不是为了完成家庭作业,只是为了一般知识,然后我将在明年秋季开始另一个编程课程。

给定一个int数组,如果6作为数组中的第一个或最后一个元素出现,则返回true。该数组的长度为1或更长。

firstLast6({1, 2, 6}) → true
firstLast6({6, 1, 2, 3}) → true
firstLast6({3, 2, 1}) → false

我遇到的问题是你不应该使用任何循环来遍历数组。如果我不知道输入数据中的整数总数,如何编写以避免索引超出范围异常?

我的解决方案---它有效但不完全是他们正在寻找的答案。

public boolean firstLast6(int[] nums) {
  for (int i=0; i < (nums.length ); i++)
  {

  if (i == 0 && nums[i] == 6)
  { 
  return true;
  }

  else if (i == (nums.length - 1) && nums[i] ==6)
  {

  return true;
  }
  }
  return false;
}

7 个答案:

答案 0 :(得分:4)

您可以使用length属性访问最后一个索引:

public boolean firstLast6(int[] nums) {
    if (nums == null || nums.length == 0) {
        return false;
    }

    return nums[0] == 6 || nums[nums.length - 1] == 6;
}

编辑:添加了检查null或空数组。

答案 1 :(得分:1)

只需检索第一个数组元素和最后一个数组元素。那就是:

nums[0]
nums[nums.length - 1];

答案 2 :(得分:1)

嘿,你不需要任何循环。您所要做的就是:

if(array[0]==6 || array[array.length-1]==6){
    return true ;
}
  else{
     return false ; 
 }

答案 3 :(得分:0)

最紧凑和最有效的表达方式是

public void firstLast(int[] a) {
  return a.length > 0 && (a[0] == 6 || a[a.length-1] == 6);
}

答案 4 :(得分:0)

可以通过

轻松获得输出
if(array[0]==6||array[nums.length]==6)
return true;
else
return false;

答案 5 :(得分:0)

这是这个问题的完整代码,我希望这会帮助你

import java.util.Scanner;


public class pair13 {


public static void main(String[] args) {

    int[] number=new int[6];



    Scanner ss=new Scanner(System.in);

    for (int j = 0; j < number.length; j++) {
        number[j]=ss.nextInt();

    }

    firstLast6( number);
    System.out.print(firstLast6(number));
}



 public static boolean firstLast6( int[] nums ) {

     if ( nums[0]==6 || nums[nums.length-1]==6 ){
                   return true;
     }
     else{

         return false;

     }
}




}

答案 6 :(得分:0)

此代码可以正常工作。

public boolean firstLast6(int[] nums) {
      int length=nums.length;
      if(nums[0]==6||nums[length-1]==6){
        return true;
      }
      return false;
    }