这是一个问题:如果数组的每个元素小于或等于下一个元素,数组将被排序(按升序)。
编写一个名为isSorted的布尔值方法,该方法接受整数数组和数组中的元素数,并返回数组是否已排序。
在显示代码之前:我的逻辑是if-else if and-else语句应该首先确定数组的大小是0、1还是2。这是因为当大小等于1或2时,程序必须中断。当大小大于2时,程序应检查arr[size-1]
我知道循环更好我只是想研究递归
public boolean isSorted(int[] arr, int size) {
if(size == 0 || size == 1) {
return true;
} else if (size == 2) { //this is the part I don't get.
if (arr[0] > arr[1]) {
return false;
} else {
isSorted(arr,size-1);
return true;
}
} else {
if (arr[size-1] < arr[size-2]) {
return false;
} else {
isSorted(arr, size-1);
return true;
}
}
}
需要从isSorted
返回结果,例如,更改:
isSorted(arr, size-1);
return true;
到
return isSorted(arr, size-1);
并且,如果(size==2)是冗余的,则案例else<代码>大小2
应具有与大小3、4、5等相同的逻辑
完整代码:
public boolean isSorted(int[] arr, int size) {
if (size == 0 || size == 1) {
return true;
} else {
if (arr[size - 1] < arr[size - 2]) {
return false;
} else {
return isSorted(arr, size - 1);
}
}
}
递归不是解决这个问题的好方法。如果你的数组非常大,你可以得到StackOverflow Error
。为什么不使用简单的if
运算符:
public static boolean isSorted(int[] arr, int size) {
if (arr.length >= 2)
for (int i = 1; i < arr.length; i++)
if (arr[i - 1] > arr[i])
return false;
return true;
}
在PHP中,检查数组是否为递归数组的最佳方法是什么? 给定以下代码: 从PHP手册: print\u r()在到达数组的第三个元素时将显示递归。 似乎没有其他方法可以扫描数组中的递归引用,因此如果需要检查它们,则必须使用print\u r()及其第二个参数来捕获输出并查找单词RECURSION。 还有更优雅的检查方式吗? 附:这就是我如何使用regex和print\u r()检查和获取递归数组键的
需要检查整数的位数是否与递归偶数。 这里没有递归: 这是使用递归计数数字的代码 但是如何制作一个递归方法,该方法将整数作为参数并返回 true(如果位数为偶数)的 false? 我这样做了,但不确定是否正确: 有什么建议/提示吗?
我试图解决树中的一个问题,我们必须检查完整路径(从根到叶)是否会导致求和值(由用户给出)。我成功地做到了这一点,下面是代码 我理解代码的主要问题是,当我们向下移动的递归函数时,总和会发生变化,当总和在语句。我们希望在第二个函数中传递的总和值是那个给定点的值(由于总和通过第一个函数传递,应该会改变),但是这段代码似乎仍然正常工作。
问题内容: 我想扩展Array类,以便它可以知道它是否已排序(升序)。我想添加一个称为的计算属性。如何声明数组的元素具有可比性? 我目前在Playground中的实现 错误 当然,我仍然遇到错误,因为Swift不知道如何比较元素。如何在Swift中实现此扩展?还是我在这里做错了什么? 问题答案: 自由函数的替代解决方案是执行Swift的内置函数和方法,并要求您将合适的比较器传递给该方法:
以下代码的输出是:请输入您的单词: 你好, 凯沙夫, 鲍勃, doan kehsavbob 线程中的异常 “主要” java.lang.数字格式异常: 对于输入字符串: “kehsavbob” 在 java.base/java.lang.数字格式异常.为输入字符串 (数字格式例外.java:67) 在 java.base/java.lang.Integer.parseInt(整数.java:668
这是第一个数组。 用户可以输入不超过100个整数,如果用户输入负数,将停止。 这是第二个数组。 用户可以输入不超过100个整数,如果用户输入负数将结束。 打印出第一个整数列表 rint出第二个整数列表 问题在于,它不会检查数组是否按升序排列。↓↓↓ 如果inOder=1,我需要合并这两个数组。