Get wrong answer with Java, can anybody tell me why?


  • 0
    L
    public class Solution {
        public  ArrayList<ArrayList<Integer>> generate(int numRows) {
            ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
            for (int i = 1; i < numRows + 1; i++) {
                res.add(eachLine(i - 1));
            }
            return res;
            
        }
        
        private int factorial(int n) {
            if (n < 0) return 0;
            if (n == 0) return 1;
            else
                return n * factorial(n-1);
        }
        
        private int conbination(int n, int k) {
            return factorial(n)/(factorial(n - k) * factorial(k));
        }
        
        private ArrayList<Integer> eachLine(int i) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            for (int j = 0; j < i + 1; j++) {
                list.add(conbination(i, j));
            }
            return list;
        }
        
    }
    

    Submission Result: Wrong Answer

    Input: 15
    Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1],[1,5,10,10,5,1],[1,6,15,20,15,6,1],[1,7,21,35,35,21,7,1],[1,8,28,56,70,56,28,8,1],[1,9,36,84,126,126,84,36,9,1],[1,10,45,120,210,252,210,120,45,10,1],[1,11,55,165,330,462,462,330,165,55,11,1],[1,12,66,220,495,792,924,792,495,220,66,12,1],[1,4,24,88,221,399,532,532,399,221,88,24,4,1],[1,0,1,5,14,29,44,50,44,29,14,5,1,0,1]]

    Expected: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1],[1,5,10,10,5,1],[1,6,15,20,15,6,1],[1,7,21,35,35,21,7,1],[1,8,28,56,70,56,28,8,1],[1,9,36,84,126,126,84,36,9,1],[1,10,45,120,210,252,210,120,45,10,1],[1,11,55,165,330,462,462,330,165,55,11,1],[1,12,66,220,495,792,924,792,495,220,66,12,1],[1,13,78,286,715,1287,1716,1716,1287,715,286,78,13,1],[1,14,91,364,1001,2002,3003,3432,3003,2002,1001,364,91,14,1]]


  • 0
    R

    Probably hit integer overflow 13! = 6227020800 > 2^31.


  • 0
    L

    thanks a lot ~


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.