【发布时间】:2020-06-29 14:23:06
【问题描述】:
我正在尝试检查数组的元素是否有后继者。换句话说,将 Ascending 子列表设置为 0,其余的设置为 1。 inputArray 的第一个元素应该被忽略
如果是,那么两个元素都应该是0,如果不是,那么1。例如:对于输入
int[] arr = {1,8,1,9,10};
输出应该是[1,1,1,0,0]
另一个例子:对于输入int[] arr = {1,2,3,9,100};,输出应该是:[1,0,0,1,1]
这是我的尝试,但它没有按预期工作。我在哪里失败?
public class HelloWorld {
public static void main(String[] args) {
int[] arr = { 1, 8, 1, 9, 10 };
int[] listOutput;
for (int i = 1; i<arr.length - 1; i++) {
if (arr[i] - arr[i + 1] == -1) {
arr[i] = 0;
arr[i + 1] = 0;
} else {
arr[i] = 1;
}
}
System.out.println("Hello World");
for (int i = 0; i<arr.length; i++) {
System.out.println(arr[i]);
}
}
}
【问题讨论】:
-
您的问题没有很好地定义,
[1, 2, 3, 5]的输出应该是什么?3应该变成0因为2有后继者,还是应该变成1,因为5不是它的后继者?5应该变成什么? -
输出应该是
[1,0,0,1],所以第一个元素应该被忽略,3是2的后继,那么两者都应该是0,5不是3的后继,然后5应该成为1 -
第一个元素是否应该保持不变?即使
1是2的继任者,也只有2应该设置为0而不是两者都设置? -
是的,第一个元素保持不变
-
我的答案中的解决方案是否相应地解决了您的问题?
标签: java arrays list algorithm