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

东莞万江网站制作好网站建设公司有多少

东莞万江网站制作,好网站建设公司有多少,杭州seo外包,网站建设与用户需求分析(初稿目录 1.题目 2.分析 函数参数的解释 矩阵转置的核心代码 3.代码 4.提交结果 5.简洁代码 1.题目 867. 转置矩阵 给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例…

目录

1.题目

2.分析

函数参数的解释

矩阵转置的核心代码

3.代码

4.提交结果

5.简洁代码


1.题目

867. 转置矩阵

给你一个二维整数数组 matrix, 返回 matrix转置矩阵

矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]

示例 2:

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

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 1000
  • 1 <= m * n <= 105
  • -10^9 <= matrix[i][j] <= 10^9

2.分析

函数参数的解释

这几个参数比较奇怪:matrix、matrixSize、matrixColSize、returnSize、returnColumnSizes

LeetCode的注释上是这样说的:

/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/

如果没看懂,可以打印参数看看情况:

指定矩阵[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],打印各个参数的值:

int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes) 
{printf("matrixSize:%d\n",matrixSize);printf("matrixColSize[0]:%d\n",matrixColSize[0]);printf("matrixColSize[1]:%d\n",matrixColSize[1]);printf("matrixColSize[2]:%d\n",matrixColSize[2]);printf("matrixColSize[3]:%d\n",matrixColSize[3]);return NULL;//随便返回一个值,为了编译能通过
}

查看测试结果的标准输出:

可以得出:matrixSize是矩阵的行数,矩阵第i行的元素个数为matrixColSize[i](i从0开始算)

则可以推出:returnSize是返回矩阵的行数, *returnColumnSizes数组存储返回矩阵的每一行元素的个数(即列数)

矩阵转置的核心代码

return_matrix[i][j]=matrix[j][i];

元素的行列互换

3.代码

C语言

本题较好考察了指针的运用

int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes) 
{*returnSize=matrixColSize[0];//原矩阵最少1列*returnColumnSizes=(int*)malloc(sizeof(int*)*matrixColSize[0]);for (int i=0;i<*returnSize;i++){(*returnColumnSizes)[i]=matrixSize;}int** return_matrix=(int**)malloc(sizeof(int**)*(*returnSize));for (int i=0;i<*returnSize;i++){return_matrix[i]=(int*)malloc(sizeof(int*)*(*returnColumnSizes[0]));for (int j=0;j<(*returnColumnSizes[0]);j++){return_matrix[i][j]=matrix[j][i];}}return return_matrix;
}

注意不用写free(),LeetCode上注释写着:assume caller calls free(),即假定调用者调用了free(),transpose函数是被调用者调用的

4.提交结果

5.简洁代码

如果想简化代码,可以一重循环和二重循环合并

int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes) 
{*returnSize=matrixColSize[0];//原矩阵最少1列*returnColumnSizes=(int*)malloc(sizeof(int*)*matrixColSize[0]);int** return_matrix=(int**)malloc(sizeof(int**)*(*returnSize));for (int i=0;i<*returnSize;i++){(*returnColumnSizes)[i]=matrixSize;return_matrix[i]=(int*)malloc(sizeof(int*)*(*returnColumnSizes[0]));for (int j=0;j<(*returnColumnSizes[0]);j++){return_matrix[i][j]=matrix[j][i];}}return return_matrix;
}
http://www.dtcms.com/wzjs/533786.html

相关文章:

  • 成都装饰公司网站建设杭州网络公司做网站报价
  • 教育公司网站模板安徽合肥建设局网站
  • 永久免费制作网站福田蒙派克6座上蓝牌京牌
  • 做企业平台网站成本wordpress注册页面模板怎么修改
  • 重庆巫溪网站建设wordpress 获取文章列表
  • 网站的虚拟主机到期商标查询网站怎么做
  • 河北建设部网站网站建设公司企业网站
  • 企业网站的推广阶段和特点西安网站建设中企建站
  • drupal个人门户网站开发丽江市企业网站
  • 外贸网站谷歌seo西安优化外
  • 精美公司网站源码mvc 门户网站开发框架
  • 电商网站建设模型图重庆建站模板厂家
  • 创意个人网站设计wordpress 主题 路径
  • 公司实力 网站在线proxy服务器
  • 国际学校网站建设辽宁网站建设墨子
  • 学校网站建设报价表iapp论坛源码
  • 网站模板分类流量型网站 cms
  • 网站对应的ip地址吗深圳手机网站设计公司
  • 朝阳专业做网站app公司开发价格
  • 外文网站设计上海高品质网站建设公司
  • 语言教学网站建设课程总结设计网站的方法
  • 需要找做网站的石家庄开始二次感染了吗
  • 网站的系统建设方式做网站的管理员咋找
  • 网站建设ppt演示文稿wordpress分类栏目字段
  • jsp网站开发详解 下载海宁住房和城乡规划建设局网站
  • 南昌公司网站开发湖南网站建设oqiandu
  • 宁波做网站烟台厂商在线设计印章
  • 有关做聚合物电池公司的网站海拉尔网站开发
  • 买东西网站建设公司企业logo
  • 服务周到的上海网站建设公司上海企业工商查询