Yebyebi, también me deseo unas felices fiestas, y además, estudia mucho.
contenido
1. Triángulo de Yanghui
Temas y ejemplos:
Ideas para resolver problemas: (tenga en cuenta que todavía hay listas en la lista)
①La idea de conversión (piense en convertir el triángulo de Yang Hui en una matriz para pensar)
②Utilizar el contenido de la colección
el código se muestra a continuación:
class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>>tmp=new ArrayList<>(); int [][]nums=new int[numRows][numRows]; for(int i=0;i<nums.length;i++){ List<Integer>list=new ArrayList<>(); for(int j=0;j<=i;j++){ if(j==0||i==j){ nums[i][j]=1; }else{ nums[i][j]=nums[i-1][j-1]+nums[i-1][j]; }list.add(nums[i][j]); } tmp.add(list); }return tmp; } }
2. Reformar la matriz
Temas y ejemplos:
Ideas para resolver problemas: (ideas de conversión, conversión mutua de matrices unidimensionales y matrices bidimensionales)
① Convierta una matriz bidimensional en una matriz unidimensional
②Convierta la matriz unidimensional en la matriz bidimensional requerida
a. Acerca de cómo convertir una matriz bidimensional en una matriz unidimensional
b. Análisis de este tema como ejemplo
el código se muestra a continuación:
class Solution { public int[][] matrixReshape(int[][] mat, int r, int c) { //把二维数组看做一维数组后求数组的长度 int m=mat.length; //每个被看做一维数组的对应的长度 int n=mat[0].length; //简单判断,若二维数组切换前后数据的数量发生了改变,那么显然是不能够进行成功切换的 if(m*n!=r*c){ return mat; } //创建一个新数组用来接收r行,c列的数组 int tmp[][]=new int[r][c]; //判断二维数组中每个数在变成一维数组后的位置 int newposition=0; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ tmp[i][j]=mat[newposition/n][newposition%n]; newposition++; } }return tmp; } }