欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【LeetCode】 119. 杨辉三角 II 不正经的骚操作

程序员文章站 2024-01-11 17:17:58
...

题目

题目链接:传送门(点击此处)
【LeetCode】 119. 杨辉三角 II 不正经的骚操作

题解

我的两种解法:

正常的递归

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> list = new ArrayList<>();
        if (rowIndex == 0) {
            list.add(1);
        } else if (rowIndex == 1) {
            list.add(1);
            list.add(1);
        } else {
            list = getRow(rowIndex - 1);
            list.add(1);
            int temppre = list.get(0);
            int temp = list.get(1);
            for (int i = 1; i < rowIndex; i++) {
                list.set(i, temppre + temp);
                temppre = temp;
                temp = list.get(i + 1);
            }
        }
        return list;
    }
}

不正经的骚操作

发在力扣的 这里(click here!!!)

class Solution {
    public List<Integer> getRow(int rowIndex) {
        if (rowIndex == 0) return Arrays.asList(1);
        else if (rowIndex == 1) return Arrays.asList(1, 1);
        else if (rowIndex == 2) return Arrays.asList(1, 2, 1);
        else if (rowIndex == 3) return Arrays.asList(1, 3, 3, 1);
        else if (rowIndex == 4) return Arrays.asList(1, 4, 6, 4, 1);
        else if (rowIndex == 5) return Arrays.asList(1, 5, 10, 10, 5, 1);
        else if (rowIndex == 6) return Arrays.asList(1, 6, 15, 20, 15, 6, 1);
        else if (rowIndex == 7) return Arrays.asList(1, 7, 21, 35, 35, 21, 7, 1);
        else if (rowIndex == 8) return Arrays.asList(1, 8, 28, 56, 70, 56, 28, 8, 1);
        else if (rowIndex == 9) return Arrays.asList(1, 9, 36, 84, 126, 126, 84, 36, 9, 1);
        else if (rowIndex == 10) return Arrays.asList(1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1);
        else if (rowIndex == 11) return Arrays.asList(1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1);
        else if (rowIndex == 12) return Arrays.asList(1, 12, 66, 220, 495, 792, 924, 792, 495, 220, 66, 12, 1);
        else if (rowIndex == 13) return Arrays.asList(1, 13, 78, 286, 715, 1287, 1716, 1716, 1287, 715, 286, 78, 13, 1);
        else if (rowIndex == 14) return Arrays.asList(1, 14, 91, 364, 1001, 2002, 3003, 3432, 3003, 2002, 1001, 364, 91, 14, 1);
        else if (rowIndex == 15) return Arrays.asList(1, 15, 105, 455, 1365, 3003, 5005, 6435, 6435, 5005, 3003, 1365, 455, 105, 15, 1);
        else if (rowIndex == 16) return Arrays.asList(1, 16, 120, 560, 1820, 4368, 8008, 11440, 12870, 11440, 8008, 4368, 1820, 560, 120, 16, 1 );
        else if (rowIndex == 17) return Arrays.asList(1, 17, 136, 680, 2380, 6188, 12376, 19448, 24310, 24310, 19448, 12376, 6188, 2380, 680, 136, 17, 1);
        else if (rowIndex == 18) return Arrays.asList(1, 18, 153, 816, 3060, 8568, 18564, 31824, 43758, 48620, 43758, 31824, 18564, 8568, 3060, 816, 153, 18, 1);
        else if (rowIndex == 19) return Arrays.asList(1, 19, 171, 969, 3876, 11628, 27132, 50388, 75582, 92378, 92378, 75582, 50388, 27132, 11628, 3876, 969, 171, 19, 1 );
        else if (rowIndex == 20) return Arrays.asList(1, 20, 190, 1140, 4845, 15504, 38760, 77520, 125970, 167960, 184756, 167960, 125970, 77520, 38760, 15504, 4845, 1140, 190, 20, 1);
        else if (rowIndex == 21) return Arrays.asList(1, 21, 210, 1330, 5985, 20349, 54264, 116280, 203490, 293930, 352716, 352716, 293930, 203490, 116280, 54264, 20349, 5985, 1330, 210, 21, 1);
        else if (rowIndex == 22) return Arrays.asList(1, 22, 231, 1540, 7315, 26334, 74613, 170544, 319770, 497420, 646646, 705432, 646646, 497420, 319770, 170544, 74613, 26334, 7315, 1540, 231, 22, 1);
        else if (rowIndex == 23) return Arrays.asList(1, 23, 253, 1771, 8855, 33649, 100947, 245157, 490314, 817190, 1144066, 1352078, 1352078, 1144066, 817190, 490314, 245157, 100947, 33649, 8855, 1771, 253, 23, 1 );
        else if (rowIndex == 24) return Arrays.asList(1, 24, 276, 2024, 10626, 42504, 134596, 346104, 735471, 1307504, 1961256, 2496144, 2704156, 2496144, 1961256, 1307504, 735471, 346104, 134596, 42504, 10626, 2024, 276, 24, 1 );
        else if (rowIndex == 25) return Arrays.asList(1, 25, 300, 2300, 12650, 53130, 177100, 480700, 1081575, 2042975, 3268760, 4457400, 5200300, 5200300, 4457400, 3268760, 2042975, 1081575, 480700, 177100, 53130, 12650, 2300, 300, 25, 1);
        else if (rowIndex == 26) return Arrays.asList(1, 26, 325, 2600, 14950, 65780, 230230, 657800, 1562275, 3124550, 5311735, 7726160, 9657700, 10400600, 9657700, 7726160, 5311735, 3124550, 1562275, 657800, 230230, 65780, 14950, 2600, 325, 26, 1);
        else if (rowIndex == 27) return Arrays.asList(1, 27, 351, 2925, 17550, 80730, 296010, 888030, 2220075, 4686825, 8436285, 13037895, 17383860, 20058300, 20058300, 17383860, 13037895, 8436285, 4686825, 2220075, 888030, 296010, 80730, 17550, 2925, 351, 27, 1 );
        else if (rowIndex == 28) return Arrays.asList(1, 28, 378, 3276, 20475, 98280, 376740, 1184040, 3108105, 6906900, 13123110, 21474180, 30421755, 37442160, 40116600, 37442160, 30421755, 21474180, 13123110, 6906900, 3108105, 1184040, 376740, 98280, 20475, 3276, 378, 28, 1);
        else if (rowIndex == 29) return Arrays.asList(1, 29, 406, 3654, 23751, 118755, 475020, 1560780, 4292145, 10015005, 20030010, 34597290, 51895935, 67863915, 77558760, 77558760, 67863915, 51895935, 34597290, 20030010, 10015005, 4292145, 1560780, 475020, 118755, 23751, 3654, 406, 29, 1 );
        else if (rowIndex == 30) return Arrays.asList(1, 30, 435, 4060, 27405, 142506, 593775, 2035800, 5852925, 14307150, 30045015, 54627300, 86493225, 119759850, 145422675, 155117520, 145422675, 119759850, 86493225, 54627300, 30045015, 14307150, 5852925, 2035800, 593775, 142506, 27405, 4060, 435, 30, 1 );
        else if (rowIndex == 31) return Arrays.asList(1, 31, 465, 4495, 31465, 169911, 736281, 2629575, 7888725, 20160075, 44352165, 84672315, 141120525, 206253075, 265182525, 300540195, 300540195, 265182525, 206253075, 141120525, 84672315, 44352165, 20160075, 7888725, 2629575, 736281, 169911, 31465, 4495, 465, 31, 1);
        else if (rowIndex == 32) return Arrays.asList(1, 32, 496, 4960, 35960, 201376, 906192, 3365856, 10518300, 28048800, 64512240, 129024480, 225792840, 347373600, 471435600, 565722720, 601080390, 565722720, 471435600, 347373600, 225792840, 129024480, 64512240, 28048800, 10518300, 3365856, 906192, 201376, 35960, 4960, 496, 32, 1);
        else if (rowIndex == 33) return Arrays.asList(1, 33, 528, 5456, 40920, 237336, 1107568, 4272048, 13884156, 38567100, 92561040, 193536720, 354817320, 573166440, 818809200, 1037158320, 1166803110, 1166803110, 1037158320, 818809200, 573166440, 354817320, 193536720, 92561040, 38567100, 13884156, 4272048, 1107568, 237336, 40920, 5456, 528, 33, 1);
        else return new ArrayList<>();
    }
}