Ous*_* D. 1 java arrays recursion
我目前正在codingbat网站上进行一项练习,内容为:
给定一个int数组,如果该数组包含6,则进行递归计算。我们将使用仅考虑以给定索引开始的数组部分的约定。这样,递归调用可以传递index + 1来向下移动数组。初始调用将索引传递为0。
例:
array6([1,6,4],0)?真正
array6([1,4],0)?假
array6([6],0)?真正
我的解决方案在下面,但由于某些原因,当我if(nums[index] == 6)为true时,它仍在else block.
我的问题:
从技术上讲,它不应在执行中的代码else block时执行中的代码if statement。那为什么会持续呢?
public static boolean array6(int[] nums, int index) {
if(nums.length == 0){
return false;
}
if(index == nums.length-1 && nums[index] != 6){
return false;
}
if(index == nums.length-1 && nums[index] == 6){
return true;
}
if(nums[index] == 6){
return true;
}else{
array6(nums,index+1);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
返回您通过递归获得的值。更改
array6(nums,index+1);
Run Code Online (Sandbox Code Playgroud)
像
return array6(nums,index+1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |