这是一个简单的数组问题,不是为了作业,只是为了明年秋天我参加另一门编程课之前的常识。
给定一个整数数组,如果 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;
}
最佳答案
您将使用 length
属性访问最后一个索引:
public boolean firstLast6(int[] nums) {
if (nums == null || nums.length == 0) {
return false;
}
return nums[0] == 6 || nums[nums.length - 1] == 6;
}
编辑:添加了对 null 或空数组的检查。
关于java - 简单的Java数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006623/