我一直在练习算法,递归总是我的弱点.此问题要求将嵌套数组展平为单个数组.如果使用给出O(n ^ 3)[给定相同大小的3d数组]解决方案的循环,这将是简单的.
然而,随着递归我一直在努力几个小时.这就是我所拥有的,请注意我已经尝试了我的代码尝试不同的解决方案,这正是我决定留下来发布给你们的人.
我想要的是两件事,无论如何要修复我当前的代码以获得正确的输出,并且有一种更简单,更简洁的方式来使用递归编写此代码,谢谢!
奖金问题,如果我不知道嵌套数组的维度,那么我将如何使用递归来解决这个问题?
编辑 好吧经过一些硬编码(我不想这样做)后,我设法让这个工作.但是代码现在是硬编码而且非常混乱,无论如何都要清理代码或者使用递归来解决这个问题的简单方法?
EDIT2 我正在尝试使用辅助方法递归重做此问题.我会看看我是否有更好的运气使用这种风格
import java.io. * ;
import java.util. * ;
class Solution {
// static int oneLen = 0;
//static int twoLen = 0;
//static int threeLen = 0;
static int oneCnt = 0;
static int twoCnt = 0;
static int threeCnt = 0;
static ArrayList < Integer > result = new ArrayList < Integer > ();
public static ArrayList < Integer > flatten(int [][][] arr){
if (oneCnt < arr[threeCnt][twoCnt].length && !(oneCnt …Run Code Online (Sandbox Code Playgroud)