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

哪些网站专做自媒体的在重庆 那里可以做诚信网站认证

哪些网站专做自媒体的,在重庆 那里可以做诚信网站认证,国内模板建站公司,番禺网络目录 相关题目介绍二维数组的模拟开辟函数参数解读此列题的解题代码 相关题目介绍 最近博主一直再刷Leetcode上有关c语言的题目#xff0c;有些题目第一步就将我卡死了。为什么呢#xff1f;因为题目中所给的函数里的参数的具体含义我既然都不知道是什么意思。当然在请教了一… 目录 相关题目介绍二维数组的模拟开辟函数参数解读此列题的解题代码 相关题目介绍 最近博主一直再刷Leetcode上有关c语言的题目有些题目第一步就将我卡死了。为什么呢因为题目中所给的函数里的参数的具体含义我既然都不知道是什么意思。当然在请教了一些大佬后我也顺利解决了不然也不会有人和你们分享了哈哈哈~ 我就已一个典型的题目来介绍吧题目链接 2373. 矩阵中的局部最大值 int** largestLocal(int** grid, int gridSize, int* gridColSize, int* returnSize, int** returnColumnSizes) { }我将从以下几个方面对此题及此类问题进行剖析 1. malloc模拟开辟二维数组 2. 涉及二维数组的题目所给函数中的各个参数的解读 3. 二维数组每一维长度的更新 二维数组的模拟开辟 此题要求返回一个矩阵我们都知道矩阵可以当作一个二维数组来看待。返回的二维数组是需要我们自己创建的即要用malloc函数动态开辟。下面讲解具体思路 使用指针数组 以row*col的数组为例 //动态开辟一个指针数组 int** pArr(int**)malloc(sizeof(int*)*row); //使row个指针分别指向每次动态开辟的地址 for(int i0;i col;i) {pArr[i] (int*)malloc(sizeof(int)*col); }首先malloc动态开辟一个数组指针其大小为row * sizeof(int*)row代表想开辟二维数组的行数sizeof(int*)便是每个指针的大小我们都知道一维数组名其实都是一个指向首元素的地址那么我们就可以每次开辟一个长度为col的一维数组并将首地址赋给pArr[i]这样我们同样可以使用pArr[i][j]调用第i行第j列的元素。 但是有一点需要注意这种方法模拟开辟的二维数组的每行之间并不是连续存放的因为每次malloc开辟的地址是随机的但一维数组之间是连续存放的·。 使用数组指针 同样以一个row * col的二维数组为例 int(*pArr)[col](int(* )[row])malloc(row * col * sizeof(int))首先malloc直接动态开辟整个二维数组的大小并将返回值强转为int(* )[col]型这样每当pArr加一操作时跳过的就是一个长度为col的一维数组吗。那么想要访问二维数组第i行第j列就可以使用pArr[i][j]来实现。 同样需要注意的是pArr的类型为int(* )[col]所以一般在做题时不使用此创建方法但单纯模拟创建二维数组是没有问题的。此方法动态开辟的二维数组在内存中是连续存放的。 一维数组方式 同样以一个row * col的二维数组为例 int* pArr(int* )malloc(row * col * sizeof(int));相较于上面的两个方法这个就比较鸡肋了既不能直接使用下标访问返回类型也为int*。那他的访问方式是怎样的呢即pArr(i*colj)这里的i代表行数j代表列数这里i * col是为了使i时每次跳过一行。 总结在我们刷Leetcode时涉及需返回矩阵的题目时函数返回类型多为二级指针这时我们就必须使用第一种模拟创建二维数组的方法。 函数参数解读 int** largestLocal(int** grid, int gridSize, int* gridColSize, int* returnSize, int** returnColumnSizes) { }下面我将以此函数为例对此函数参数进行剖析 首先看到grid这是一个二级指针经过上面介绍不难发现此指针指向了一个指针数组也可以当作是二维数组。但是并不是直接创建的二维数组形如int pArr[row][col]因为我们知道如果传pArr时grid类型就是int*了与题不符而且不能使用下表直接访问元素。所以在函数外部创建的数组大致如下 //以2 * 2的矩阵为例 int arr1[2] {1,2}; int arr2[2] {3,4}; int* pArr[2] {arr1,arr2};此处gridSize便是指针数组pArr的长度了此长度便可当作是矩阵的行数。 而gridColSize指向的是pArr中指针指向的数组的长度所以*gridColSize便可当作矩阵的列数。 这里的returnSize是我们需要设置的值可以理解为返回的矩阵二维数组的长度即矩阵行数写完代码时我们需解引用*returnSize设置长度。 那么设置完行数就还要设置列数 for(int i0; igridSize; i)//gridSize行 {(*returnColumnSizes)[i] gridSize;//每行设为grid列 }此列题的解题代码 int** largestLocal(int** grid, int gridSize, int* gridColSize, int* returnSize, int** returnColumnSizes) {int row gridSize;int col *gridColSize;int** ans(int**)malloc((row-2)*sizeof(int*));for(int i0;irow-2;i){ans[i](int*)malloc((col-2)*sizeof(int));}for(int i0;irow-2;i){for(int j0;jcol-2;j){int max 0;for(int m0;m3;m)for(int n0;n3;n)max (max grid[im][jn]) ? max : grid[im][jn];ans[i][j] max;} }*returnSize (row-2);*returnColumnSizes malloc((gridSize-2)*sizeof(int));for(int i0; igridSize-2; i){(*returnColumnSizes)[i] gridSize-2;}return ans; }关于这类题目所给的函数参数大致解释是这样的但可能还会依据题目而变化所以更需要的是我们大量的练习和总结只有这样才能在最短的时间内判断出函数参数的含义。上面的讲解有很多是我自己的理解所以有什么错误还请各位指出感谢
http://www.pierceye.com/news/24635/

相关文章:

  • 深圳 网站定制通州重庆网站建设
  • 泉州网站制作方案衣服商业网站建设策划书
  • 免费给人做网站的卖水果网站建设的策划书
  • 编写网站 语言shein跨境电商平台
  • 动静分离网站架构网页表单制作
  • 移动网站开发的视频下载无锡专业网站制作的公司
  • 招聘美容师在哪个网站做招聘最有效郑州app
  • 网站收录很好没排名做论坛网站4g空间够不够用
  • 免费ppt网站 不要收费的wordpress分页效果
  • 沈阳网站建设招标公司什么样的网站好优化
  • 扁平式风格网站制作企业宣传册用什么软件
  • 企业内部网站建设费用wordpress 获取图片地址
  • 网站建设项目总结郴州市简介
  • 软件下载网站如何建设单页手机网站源码
  • wordpress无域名建站甘肃省建设厅网站质监局
  • 南阳网站建设价格wordpress有什么选什么用
  • 一起合伙做项目的网站网站优化要怎么做才会做到最佳
  • 怎么看待网站开发自然资源网站建设方案
  • 外卖网站开发能多少钱自己做微信团购小程序
  • 做有色金属哪个网站好企业管理网课
  • 网站策划建设方案书国外搜索关键词的网站
  • 南桥网站建设公司注销后 网站备案
  • 做移动网站优化快网站开发如何模块化
  • 做网站准备的资料如何制作个人网页封面
  • 姑苏区建设局网站wordpress 用户权限
  • 桂林有帮做公司网站吗一般的企业网站开发价格
  • 涿州规划建设局网站抖音粉丝购买网站
  • 旧宫网站建设结合公众号小店做网站
  • 一般做网站都在什么网做手机建设网站
  • 东莞企业营销型网站网站设计制作教程