当前位置: 首页 > 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.huolong8.cn/news/492788/

相关文章:

  • 装修企业网站源码哈尔滨市工程建设项目网
  • 网站用什么空间好什么网站开发外贸客户
  • seo网站合作苏州网站建设系统方案
  • 一般网站建设多少钱便宜的网站好吗浙江省建筑培训网
  • 简述你对于网站建设的认识销售管理
  • 绵阳做手机网站昆明做网站的个人
  • 自己做产品品牌网站wordpress 输出文章标签
  • 网站开发价格预算网站设计外包协议
  • 建设网站和ipv4和ipv6什么关系深圳精品网站制作
  • 桂林网络开发成都优化外包
  • 达州建设局网站360优化大师安卓版下载
  • 做网站的动态图片安全培训网站
  • 企业信用网站建设建设网站的安全措施
  • 做网站什么主题比较好做商城网站如何寻找货源
  • 适合ps做图的素材网站网站推广服务 商务服务
  • 机关门户网站建设意义浏览器怎么打开网站服务器下载
  • 企业网站建设技巧wordpress最简单搬家
  • 网站安全建设经费保障网站开发计划书封面设计
  • 浙江省城乡与住房建设厅网站dz论坛网站创建页面
  • 网站外链查询可以免费做网站吗
  • 帮人做违法网站网站后台怎么打开
  • 商品交易网站建设论文新品发布会文案范例
  • 公司建设网站的案例分析建设和谐社区网站
  • wordpress 企业整站源码吉林省建设工程造价信息网
  • 温州住房与城乡建设部网站dedecms网站邮件程序
  • 潍坊哪里有做360网站的广州做企业网站的公司
  • 抄袭别人网站精品成品网站1688
  • 临沂网站建设技术支持seo从零开始到精通200讲解
  • 制作网站服务器网站微信推广方案
  • 网站建设及报价wordpress iis 分页 404