Leetcode 283题 递归实现
来源:5-5 递归运行的机制:递归的微观解读
weibo_新的旅涂_0
2018-08-08
最近在学习二叉搜索树,发现递归理解的不太好,所以找了一些题用递归做,下面的解答可以通过递归实现(Solution accepted)。不知道有没有更好的递归解法,谢谢老师了。
283. Move Zeroes
class Solution {
public void moveZeroes(int[] nums, int left) {
int temp = 0;
if (left == nums.length - 1) {
return ;
}
if(nums[left] != 0) {
moveZeroes(nums, left+1);
}
else {
for (int i=left+1; i<nums.length; ++i) {
if(nums[i] != 0){
temp = nums[left];
nums[left] = nums[i];
nums[i] = temp;
break;
}
}
moveZeroes(nums, left + 1);
}
}
public void moveZeroes(int[] nums){
moveZeroes(nums, 0);
}
}
1回答
-
挺好的。
这个问题不是很好的一个递归问题模型,所以不适合用来练习递归。建议在Leetcode中,寻找:
1)链表;树结构;二分搜索树结构;线段树结构;等等具有典型的递归性质的结构问题来做。大部分都可以使用递归。其实我觉得练习结构就够了:)
2)回溯问题和动态规划的问题,大部分都可以使用递归。
加油!:)
20
相似问题