不得说不说,golang用递归的时候如果参数是数组的,我真的有点懵。。以后这种情况下我都拿新的变量来接参数,不然总是会出错,而且这个错误我看不懂。。
这道题是返回全排列,做了上一道题后再来这一道,很容易想到回溯。需要注意的是回溯的时候要排除当前的这个元素,不然就会出现重复了,于是,代码就是下面这样。
这里倒没什么问题,但是,要注意的是,假如我是按照下面这种就是说错的。。就是我没有单独声明两个变量来接candidates和nums的话就会出错。。。 而且我不知道为啥错了,可能就是前面golang陷阱差不多的那个错误
java版本:
其实以前用golang做时我是利用了golang的slice来做的,这一次重刷用java后并没有slice使用,不过正是因为整个原因我才能够去学习这种题的官方解法,也就是声明一个boolean数组来判断,代码如下: