当前位置: 首页 > news >正文

与有权重网站做友链东莞营销型手机网站建设

与有权重网站做友链,东莞营销型手机网站建设,致设计网站,那个网站适合学生做兼职杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] …

杨辉三角

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

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

解题思路

杨辉三角(Pascal's Triangle)是一个由数字排列成的三角形,每个数字等于其上方两个数字之和。下面是两种方案的解题思路及对应的Java代码。

解题思路

  1. 使用二维数组

    • 创建一个二维数组来存储杨辉三角的每一行。
    • 第一行和第二行的元素为1。
    • 从第三行开始,每个元素为其上方两个元素的和。
    • 逐行填充数组,直到达到所需的行数。
  2. 使用顺序表(ArrayList)

    • 使用ArrayList来存储每一行的内容。
    • 每一行创建一个新的ArrayList,第一列和最后一列为1。
    • 中间的元素则由前一行的两个上方元素相加得出。
    • 最终将每一行的ArrayList添加到一个大的ArrayList中。

方案一:使用二维数组

public class PascalTriangle {public int[][] generate(int numRows) {int[][] triangle = new int[numRows][];for (int i = 0; i < numRows; i++) {triangle[i] = new int[i + 1]; // 每行的长度triangle[i][0] = 1; // 第一列赋值为1triangle[i][i] = 1; // 最后一列赋值为1for (int j = 1; j < i; j++) {triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];}}return triangle;}public static void main(String[] args) {PascalTriangle pt = new PascalTriangle();int[][] result = pt.generate(5); // 生成前5行的杨辉三角for (int[] row : result) {for (int num : row) {System.out.print(num + " ");}System.out.println();}}
}

方案二:使用顺序表(ArrayList)

import java.util.ArrayList;
import java.util.List;public class PascalTriangle {public List<List<Integer>> generate(int numRows) {List<List<Integer>> triangle = new ArrayList<>();for (int i = 0; i < numRows; i++) {List<Integer> row = new ArrayList<>();row.add(1); // 第一列赋值为1if (i > 0) {List<Integer> prevRow = triangle.get(i - 1);for (int j = 1; j < i; j++) {// 中间的元素row.add(prevRow.get(j - 1) + prevRow.get(j));}row.add(1); // 最后一列赋值为1}triangle.add(row);}return triangle;}public static void main(String[] args) {PascalTriangle pt = new PascalTriangle();List<List<Integer>> result = pt.generate(5); // 生成前5行的杨辉三角for (List<Integer> row : result) {for (int num : row) {System.out.print(num + " ");}System.out.println();}}
}

总结

两种方案都能够有效地生成杨辉三角,使用二维数组的方式在内存上相对更高效,而使用ArrayList的方法更加灵活,适合需要动态调整大小情况下的存储需求。根据实际情况选择合适的方案。

http://www.yayakq.cn/news/884355/

相关文章:

  • 园岭中小网站建设建立网站兴田德润电话多少
  • 网络公司网站程序怎么建设分销模式手机网站
  • 专业生产佛山网站建设黑龙江省营商环境建设监督局网站
  • 网站建设一六八互联hostinger建站wordpress
  • zencart 网站安装青海西宁今天刚刚紧急通知
  • 广西电商网站无锡网站建设哪里好
  • 你的网站正在建设中seo推广教程seo高级教程
  • 中国建设银行官网网站首页开工作室做什么项目赚钱
  • 中国建设银行有哪些招聘网站郑州网站zhi zuo
  • 国外空间做网站怎么样郑州电商运营公司排行
  • 集团企业网站建设湖南中小企业建站价格
  • 中文博客网站模板我请网络公司做的网站上的图片被当广告拦截了_怎么回事
  • 网站运维公司有哪些服务平台官网
  • 大连网站开发费多少钱哪里有零基础网站建设教学培训
  • anker 网站建设风中有朵雨做的云网站观看
  • 网站验证做一个企业网站需要多少钱
  • 去哪里购买网站空间网站制作的常见问题
  • 手机移动开发网站建设南昌网站建设如何
  • 做网站公司实力排名网站目录权限设置 user
  • 品牌电商网站wordpress列表主题
  • 能接做网站的活的网站梁水才seo优化专家
  • 吉林网站建设找哪家网络推广平台公司
  • 西宁网站建设索王道下拉苏州网站建设软件
  • 网站数据库数据丢失windows2008 iis 网站
  • 做一个网站网站群建设管理办法
  • 网站开发需要用什么软件东莞卓博人才网招聘
  • 工业设计代做网站个人介绍网页制作
  • 广安住房和城乡建设厅网站推推蛙品牌策划
  • 新增接入 新增网站电脑做系统哪个网站比较好
  • 永康市网站建设制作wordpress编辑栏不见了