在for循环中添加条件

时间:2017-01-12 02:20:31

标签: java

我正在为java做一些编码挑战。在一个挑战中,如果前2个元素或后2个元素中的给定数组具有1后跟3,则返回true。

示例:

unlucky1([1, 3, 4, 5]) → true
unlucky1([2, 1, 3, 4, 5]) → true
unlucky1([1, 1, 1]) → false

因此,我有以下内容:

for(int i=0, j=nums.length-1; i<nums.length-1; i++, j--) {
   if((i<3&&nums[i]==1&&nums[i+1]==3)) {
      return true;
   }
   else if(j>3&&nums[j]==3&&nums[j-1]==1) {
      return true;
   }
}
  return false;

我的问题是,有没有更好的方法来设定条件?我不喜欢检查迭代变量是否小于/大于常数的想法。我的代码通过他们所有的测试,但一个,但我觉得它有缺陷/凌乱。我怎样才能有效地检查最后两个&amp;前两个索引有一个1后跟一个3而不检查是j>3还是i<3

它未传递的测试是使用以下数组:[1, 1, 1, 3, 1]当测试假定为假时,我的代码返回true。

1 个答案:

答案 0 :(得分:1)

不要使用根据shmosels评论编辑的任何循环

if (arr[0] == 1 && arr[1] == 3 ||
    arr[1] == 1 && arr[2] == 3 ||
    arr [arr.length -2]  == 1 && arr[arr.length - 1] == 3)
    return true;