我想实现一种方法,该方法采用 2 个数组并返回按字典顺序小于另一个的数组。我尝试按照字典顺序的定义来做,但它不起作用。这是我的代码:
public boolean lexicoSmaller(ArrayList<Integer> list1, ArrayList<Integer> list2)
{
int m = 1;
int n = list1.size() -1;
while(m <= n)
{
boolean firstFound = true;
for(int i=0; i<m; i++)
{
if(!Objects.equals(list1.get(i), list2.get(i)))
{
firstFound = false;
break;
}
}
if(firstFound && list1.get(m) < list2.get(m)) return true;
m++;
}
return false;
}
上面的代码没有给出正确的答案。
例如对于输入0 5 7 9 14 16 18 23
和1 3 6 11 12 17 20 22
,答案应该是正确的,但我得到了错误。