这是一个简单的数组问题,不是为了完成家庭作业,只是为了一般知识,然后我将在明年秋季开始另一个编程课程。
给定一个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;
}
答案 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;
}