首页 > 其他分享 >杨氏矩阵中找是否存在k

杨氏矩阵中找是否存在k

时间:2023-06-11 22:12:50浏览次数:30  
标签:arr return int 是否 矩阵 else 杨氏 col row

//杨氏矩阵查找k是否存在 时间复杂数小于O(N),O(N)为穷举法用的时间
int FindNum1(int(*arr)[3], int k, int row, int col)
{
int i = 0;
int j = col - 1;
while(i < row && j > 0)
{
if (arr[i][j] < k)
{
i++;
}
else if (arr[i][j] > k)
{
j--;
}
else
{
return 1;
}
}
//找不到
return 0;
}

int FindNum2(int arr[3][3], int k, int *row, int *col)
{
int x = 0;
int y = *col - 1;
while(x <= *row-1 && y >= 0)
{
if (arr[x][y] < k)//i行右上角最大值小于k 换下一行
{
x++;
}
else if (arr[x][y] > k)//i行右上角最大值大于k 换上一列
{
y--;
}
else
{
//操作x,y的值
*row = x;
*col = y;
return 1;
}
}
//找不到
return 0;
}

int main()
{
int arr[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
int k = 5;
int x = 3;
int y = 3;//返回型参数
//int ret = FindNum1(arr, k, 3, 3);
int ret = FindNum2(arr, k, &x, &y);

if (ret == 1)
{
printf("包含,下坐标是arr[%d][%d]\n", x, y);
}
else
{
printf("不包含");
}

return 0;
}

标签:arr,return,int,是否,矩阵,else,杨氏,col,row
From: https://www.cnblogs.com/zrk-8008/p/17473714.html

相关文章

  • Python判断字符串是否包含特定子串的7种方法(转)
    转自:Python判断字符串是否包含特定子串的7种方法在写代码的过程中,我们经常会遇到这样一个需求:判断字符串中是否包含某个关键词,也就是特定的子字符串。比如从一堆书籍名称中找出含有“python”的书名。判断两个字符串相等很简单,直接==就可以了。其实判断包含子串也非常容易,而且......
  • 2023-06-11:redis中,如何在100个亿URL中快速判断某URL是否存在?
    2023-06-11:redis中,如何在100个亿URL中快速判断某URL是否存在?答案2023-06-11:传统数据结构的不足当然有人会想,我直接将网页URL存入数据库进行查找不就好了,或者建立一个哈希表进行查找不就OK了。当数据量小的时候,这么思考是对的,确实,将值映射到HashMap的Key,可以在O(1)的时间复杂度......
  • 射线法判断点是否在多边形内
    射线法isPointInPolygon方法用于判断点是否在多边形内部,points表示多边形各个点的坐标,point表示要判断的点的坐标publicclassPointInPolygon{/***判断点是否在多边形内部**@parampoints多边形各个点的坐标*@parampoint要判断的点的坐标......
  • 矩阵乘法与动态 DP 入门
    矩阵乘法及广义矩阵乘法前置知识:矩阵相关基础概念。记\(A(i,j)\)表示矩阵\(A\)的第\(i\)行第\(j\)列,\(n_A\)为\(A\)的行数,\(m_A\)为\(A\)的列数。定义矩阵加法\(A+B\)为(\(n_A=n_B,m_A=m_B\)):\[\\\\\[A+B](i,j)=A(i,j)+B(i,j)\]矩阵加法有交换律,结合......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意软件......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意......
  • Java开发技巧-数据结构-使用HashSet判断主键是否存在、使用Pair成对结果返回/Triple三
    场景Java中使用HashSet判断主键是否存在HashSet实现Set接口,由哈希表(实际上是HashMap)实现,但不保证set的迭代顺序,并允许使用null元素。HashSet的时间复杂度跟HashMap一致,如果没有哈希冲突则时间复杂度为O(1),如果存在哈希冲突则时间复杂度不超过O(n)。所以,在日常编码中,可以使用HashSe......
  • Python快速判断若干整数是否互不相同
    让我们先来看一个简单的问题:给定两个整数x和y,如果这两个数不相等就输出Yes,否则输出No。遇到这样的问题,一般都会毫不犹豫地给出类似于下面的代码:如果问题性质不变,简单地增加一下问题规模:给定三个整数x、y和z,如果这三个数互不相等就输出Yes,否则输出No。估计很多人会在上面代码的基础......
  • Python测试序列是否所有相邻元素之间都具有升序关系
    代码功能:测试给定序列中是否所有相邻元素都具有严格的升序关系,也就是每个元素都比相邻的后面元素小。......
  • 2022-2023 春学期 矩阵与数值分析 C7 常微分方程的数值解法
    2022-2023春学期矩阵与数值分析C7常微分方程的数值解法原文C7常微分方程的数值解法问题描述一阶常微分方程的初值问题\[\left\{\begin{array}{l}u'=f(t,u),\;a\leqt\leqb\\u(a)=u_0\end{array}\right.\]解的存在唯一性:若\(f(t,u)\)满足Lipschitz条件,即存在......