杨氏矩阵

//杨氏矩阵 【每行从左到右,每列从上到下增加】

有一个二维数组.

数组的每行从左到右是递增的,每列从上到下是递增的.

在这样的数组中查找一个数字是否存在。

时间复杂度小于O(N);【不能挨个查,挨个查时间复杂度=on)】

//

//数组:

//1 2 3

//2 3 4

//3 4 5

//

//

//1 3 4

//2 4 5

//4 5 6

//struct Ret

//{

//int x;

//int y

//};

(struct Ret)int IsExit(int arr[3][3], int k,int row,int col)

{

int x = 0;

int y = col - 1;

//struct Ret ret = { -1,-1 };

while((x<row) && (y>=0))

{

if (k>arr[x][y])

{

x++;

}

else if (k == arr[x][y])

{

return 1;

//ret.x=x;

//ret.y = y;

//return ret;

}

else

y--;

}

return 0;

}

int main()

{

int arr[3][3] = { 1, 3, 4, 2, 4, 5, 4, 5, 6 };

int key = 4;

struct Ret ret = { 0 };

int ret = IsExit(arr, key,3,3);

if (ret = 1)

{

printf("存在\n");

}

else

{

printf("不存在\n");

}

system("pause");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuruhua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值