给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

从第0行开始,输出第k行,传的参数为第几行,所以在方法中先将所传参数加1,然后将最后一行加入集合中返回。

代码如下:

public static List<Integer> generateII(int row){
        ++row;
        List<Integer> list = new ArrayList<Integer>();
        int[][] arr = new int[row][row];
        for(int j = 0;j<row;j++) {
            for(int k = 0;k<=j;k++) {
                if(k == 0 || j == k) {
                    arr[j][k] = 1;
                }else {
                    arr[j][k] = arr[j - 1][k] + arr[j - 1][k - 1];
                }
                if(j == row - 1)
                    list.add(arr[j][k]);
            }
        }
        return list;
    }

原文地址:https://www.cnblogs.com/duy666/p/10459387.html

时间: 2024-08-29 17:53:54

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。的相关文章

算法练习之杨辉三角,杨辉三角的第 k 行

1. 杨辉三角 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] java class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> rs = n

使用队列求解杨辉三角的第K层的所有元素

Java代码   package queue; import java.util.concurrent.ConcurrentLinkedDeque; /** * Created by Lanxiaowei * Craated on 2016/12/12 9:03 * 求解杨辉三角的第K层的所有元素 * 使用队列求解 */ public class YHTriangleWithQueue { public static void main(String[] args) throws Interru

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

该题还是考杨辉三角计算,只不过最后每一行都放入List集合中,然后返回,直接看代码: public static List<List<Integer>> generate(int row){ List<List<Integer>> list = new ArrayList<List<Integer>>(); int[][] arr = new int[row][row]; for(int j = 0;j<row;j++) { L

位运算-异或运算-只出现一次的数字-给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例: 输入: [2,2,1] 输出: 1 输入: [4,1,2,1,2] 输出: 4 GO: func singleNumber(nums []int) int { var num int for i := 0; i < len(nums); i++ { num = num ^ nums[i]; } return num; } PHP: class Solution { /** * @par

Python 中使用 for、while 循环打印杨辉三角练习(列表索引练习)。

Python中使用for while循环打印杨辉三角练习(列表索引练习). 杨辉三角是一个由数字排列成的三角形数表,一般形式如下: 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组成的,而其余的数则是等于它肩上的两个数之和. 方法一: __author__ = 'Brad' n = int(input('请输入你想打印杨辉三角

一个超强的杨辉三角python实现方法

廖雪峰Python教程——生成器 有这么一个习题: 练习 杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list: # -*- coding: utf-8 -*- def triangles(): 在评论里发现这么一个强大的答案: 1 N = [1] 2 while True: 3 yield N 4 N.append(0) 5 N = [N[i-1] + N[i]

打印一个杨辉三角

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.每排的首尾都是1 2.第几排就有几个数 3.中间的数的值,是上面一排的正上方的数 + 前面一个数 function san ($num) { $array = array();// 二维数组来存放所有的值 for($i = 0; $i < $num; $i ++) { // 确定有几行 f

读书笔记:一个非聚集索引查询引起的“表扫描” + “阻塞”问题

以下是使用AdventureWorks2008R2数据库测试一个因全表扫描而引起的阻塞问题. 步骤: 一.建表 CREATE TABLE Employee_Demo_Heap( [BusinessEntityID] [int] NOT NULL, [NationalIDNumber] [nvarchar](15) NOT NULL, [LoginID] [nvarchar](256) NOT NULL, [OrganizationNode] [hierarchyid] NULL, [Organi

hdu 1806 Frequent values(给定一个非降序数组,求任意区间内出现次数最多的数的次数)

1.题目解析可见<训练指南>P198 2代码: #include<cstdio> #include<cstring> #include<cmath> #define Min(a,b) ((a)<(b)?(a):(b)) #define Max(a,b) ((a)>(b)?(a):(b)) #define N 100005 #define INF 1<<30 using namespace std; int a[N]; int valu