当前位置: 首页 > 知识库问答 >
问题:

如果索引i处子列表(如果有的话)是按升序排列,如何返回true

华建同
2023-03-14

如果索引i处的子列表(如果有的话)按升序排列(每个项小于或等于下一项),如何返回true;否则为假。这就是我到目前为止所做的。然而,我似乎无法通过考试

public static boolean isAscending(ArrayList<ArrayList<Integer>> list, int i) {

    ArrayList<Integer> data = list.get(i);
    for (i = 0; i < data.size() - 1; i++) {
        if (data.get(i) > data.get(i + 1)) {
            return false;
        }
    }
    return true;
}

@Test @Graded(description="IsAscendingBasic")
public void testIsAscendingBasic() {
    assertFalse(ListOfListService.isAscending(emptyList, 0));

    assertFalse(ListOfListService.isAscending(oneRow, 0));
    assertFalse(ListOfListService.isAscending(oneRow, 1));
    assertFalse(ListOfListService.isAscending(oneRow, -1));

    assertTrue(ListOfListService.isAscending(list2, 0));
    assertFalse(ListOfListService.isAscending(list2, 1));
    assertFalse(ListOfListService.isAscending(list2, 2));
    assertTrue(ListOfListService.isAscending(list2, 3));
    assertTrue(ListOfListService.isAscending(list2, 4));
    assertTrue(ListOfListService.isAscending(list2, 5));

    list2.get(4).set(1, 20); // 20, 20
    assertTrue(ListOfListService.isAscending(list2, 4));

    assertTrue(ListOfListService.isAscending(list1, 1));

    assertTrue(ListOfListService.isAscending(list3_emptySubLists, 0)); // empty sub-list is ascending
    assertFalse(ListOfListService.isAscending(list3_emptySubLists, 1));
    currentMethodName = new Throwable().getStackTrace()[0].getMethodName();
}

@Test @Graded(description="IsAscendingComprehensive")
public void testIsAscendingComprehensive() {
    testIsAscendingBasic();
    assertFalse(ListOfListService.isAscending(null, 0));

    assertFalse(ListOfListService.isAscending(list4_nullItems, 0));
    assertTrue(ListOfListService.isAscending(list4_nullItems, 2));
    assertFalse(ListOfListService.isAscending(list4_nullItems, 3));
    assertFalse(ListOfListService.isAscending(list4_nullItems, 5));
    currentMethodName = new Throwable().getStackTrace()[0].getMethodName();
}

共有1个答案

金伟
2023-03-14

正如所评论的那样,reusei变量会导致意外的输出。

您可以通过在循环作用域中定义一个新的int j变量来修复它:

public static boolean isAscending(ArrayList<ArrayList<Integer>> list, int i) {
    ArrayList<Integer> data = list.get(i);

    for (int j = 0; j < data.size() - 1; j++) {
        if (data.get(j) > data.get(j + 1)) {
            return false;
        }
    }

    return true;
}

作为附带说明,请考虑只获得您需要的参数

public static boolean isAscending(List<Integer> list) {
    for (int j = 0; j < list.size() - 1; j++) {
        if (list.get(j) > list.get(j + 1)) {
            return false;
        }
    }
    return true;
}
boolean isAscending = isAscending(list.get(3));
 类似资料:
  • 问题内容: 我需要对列表进行排序,然后返回带有列表中已排序项目索引的列表。例如,如果我要排序的列表是,则需要返回。 这个问题以字节为单位发布,但我认为我会在这里重新发布。 http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index- sorted-item 我的具体需求是根据对象的属性对对象列表进行排序。然后

  • 到目前为止,我得到了indexOutOfBoundsException错误

  • 这里,我试图在之后按排序列表,我有一个列表,其中在即处有的数据,在即处有的数据。 现在,我想要的是基于该按排序列表。为此,我使用了 感谢任何帮助。谢谢 下面是我所做的排序

  • 问题内容: 因此,请考虑以下表格: 桌子: id(整数,主键) 11 c2 c3 c4 c5 假设我使用的查询在运行时有所不同(例如,一个网站,其中的复选框表示是否要在特定字段上进行搜索),一些可能的实例是: (使用一些值) 问题: 索引的作用是什么?在几个查询中将如何使用它? 在此表上创建最佳索引是什么? 问题答案: MySQL文档做了解释多列索引是如何工作的一个很好的工作在这里。 通常,当索引

  • 问题内容: 我有一个庞大的产品数据库,每个星期天,我的脚本都会激活50个新产品。问题是,根据我脚本中的某些规则,我发现我应该优先激活一些产品。(以您的示例为例,它应该始终优先激活其中名称为“ hello kitty”和“ meshuggah”的产品,然后再进行其他操作) 我的数据库表包含有关产品的信息和唯一ID。可以说脚本找到了这些ID中的5个,标题中有hello kitty。 因此,我该如何进行

  • 但是如果serviceworkList列表为空,则变量“validate”为false。我知道allMatch的规范,如果list为空,则返回为true。 有什么建议,我可以如何重建流,如果列表列表为空,我会得到假?