请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Leetcode 283题 递归实现

最近在学习二叉搜索树,发现递归理解的不太好,所以找了一些题用递归做,下面的解答可以通过递归实现(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回答

liuyubobobo 2018-08-09 00:35:43

挺好的。


这个问题不是很好的一个递归问题模型,所以不适合用来练习递归。建议在Leetcode中,寻找:

1)链表;树结构;二分搜索树结构;线段树结构;等等具有典型的递归性质的结构问题来做。大部分都可以使用递归。其实我觉得练习结构就够了:)

2)回溯问题和动态规划的问题,大部分都可以使用递归。


加油!:)

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信