算法题常用

算法题常用

  • 前言
  • 参数解析
    • 题目
    • 题目解析:
    • 函数解析

前言

主要列举一些经典的算法思路

参数解析

这里说明下c语言的话在解题的时候会给出一些参数,如果不能真确的理解这些参数的意义,那么题目中参数赋值就没意义了。

题目

给定一个由 ‘0’ 和 ‘1’ 组成的2维矩阵,返回该矩阵中最大的由 ‘1’ 组成的正方形的面积。输入的矩阵是字符形式而非数字形式。
输入:
[[1,0,1,0,0],[1,0,1,1,1],[1,1,1,1,1],[1,0,0,1,0]]
复制
返回值:
4

题目解析:

意思输入一个二维的矩阵,求1围成的面积
如下所示,注意这里的1 0 均为字符。
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0

然后他给的这个函数原型是这样的
int solve(char** matrix, int matrixRowLen, int* matrixColLen ) {
// write code here
}

函数解析

  1. matrix 二维指针毋庸置疑,因为传入是是一个二维数组嘛,
  2. matrixRowLen这个代表的是我二维数组有多少行,
  3. matrixColLen 这其实代表一个数组每个数组的元素代表这个行有多少列

这里可能有的人就不理解了,我们撇开这道题目来说
我举个例子
char *arr[6] ={
“1234”,
“12333”,
“25”
}

我们对应这个函数来说
int solve(char** matrix, int matrixRowLen, int* matrixColLen ) {

  1. matrix 其实就是arr的地址
  2. matrixRowLen其实就是3行
  3. matrixColLen 其实是另一个数组他的值是{4,5,2}
  4. 只不过上面的比较特殊matrixColLen 的元素都是5

你可能感兴趣的:(算法,矩阵,数据结构)