這個想法是,如果我在某個樓梯我可以走一步或兩步,所以如果我在樓梯3我可以走下去1 1 1或2 1例如。我的代碼應該打印所有的可能性。我得到的錯誤是我無法將add函數轉換爲數組(因爲add方法是一個布爾值)。這個算法有什麼問題?在遞歸算法中使用數組來尋找組合
public class Stairs {
public static void staircase (int height ){
ArrayList<Integer> Array = null;
explore (height,Array);
}
public static void explore(int objheight,ArrayList<Integer>Array){
int intialheight = 0;
if (intialheight == objheight){
Array.toString();
}
else{ if (objheight > intialheight){
explore(objheight-2,Array.add(2));
explore(objheight-1,Array.add(1));
}
}
您的意見我得到一個空的輸出 進口java.lang.reflect.Array中後
; import java.util.ArrayList;
public class Stairs {
public static void staircase (int height ){
ArrayList<Integer> Array = new ArrayList<Integer>();
explore (height,Array);
}
public static void explore(int objheight,ArrayList<Integer>Array){
int intialheight = 0;
if (intialheight == objheight){
Array.toString();
}
else{ if (objheight > intialheight){
Array.add(2);
explore(objheight-2,Array);
Array.add(1);
explore(objheight-1,Array);
}
}}
public static void main (String args[]){
staircase(3);
}
}
什麼是 「add函數轉換爲數組」 是什麼意思?我很肯定你會得到一個NullPointerException。 – Henry