#include<cstdio>

 bool Find(int* matrix, int rows, int columns, int number)
{
bool result = false;
if(matrix != nullptr && rows > && columns > )
{
int row_begin = ;
int col_begin = columns - ; //3 [0, 3] while (columns >= && row_begin < rows)
{
if (matrix[row_begin*columns + col_begin] == number)
{
result = true;
return result;
}
else if (matrix[row_begin*columns + col_begin] > number)
col_begin--; // 2 1
else
row_begin++;
}
}
return result;
} void Test(char* testName, int* matrix, int rows, int columns, int number, bool expected)
{
if (testName != nullptr)
printf("%s begins: ", testName);
bool result = Find(matrix, rows, columns, number);
if (result == expected)
{
printf("passed.\n");
}
else
printf("failed.\n");
} void Test1()
{
int matrix[][] = { {,,,},{,,,},{,,,},{,,,} };
Test("Test1", (int*)matrix, , , , true);
}
void Test2()
{
int matrix[][] = { { ,,, },{ ,,, },{ ,,, },{ ,,, } };
Test("Test1", (int*)matrix, , , , false);
}
void Test3()
{
int matrix[][] = { { ,,, },{ ,,, },{ ,,, },{ ,,, } };
Test("Test1", (int*)matrix, , , , true);
}
void Test4()
{
int matrix[][] = { { ,,, },{ ,,, },{ ,,, },{ ,,, } };
Test("Test1", (int*)matrix, , , , true);
}
void Test5()
{
int matrix[][] = { { ,,, },{ ,,, },{ ,,, },{ ,,, } };
Test("Test1", (int*)matrix, , , , false);
}
void Test6()
{
int matrix[][] = { { ,,, },{ ,,, },{ ,,, },{ ,,, } };
Test("Test1", (int*)matrix, , , , false);
}
void Test7()
{
Test("Test1", nullptr, , , , false);
}
int main(int argc, char* argv[])
{
Test1();
Test2();
Test3();
Test4(); Test5();
Test6();
Test7();
return ;
}

<offer4> 04_FindInPartiallySortedMatrix的更多相关文章

  1. 剑指offer---4、序列化二叉树

    剑指offer---4.序列化二叉树 一.总结 一句话总结: 1. 对于序列化:使用前序遍历,递归的将二叉树的值转化为字符,并且在每次二叉树的结点不为空时,在转化val所得的字符之后添加一个' , ' ...

  2. 剑指offer--4.重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2, ...

  3. 剑指offer4

    中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历.中序周游.在二叉树中,先左后根再右.巧记:左根右. 现在有一个问题,已知二叉树的前序遍历和中序遍历:PreOrder:         GDAFE ...

  4. 剑指offer--4.斐波那契数列

    int最大范围(有符号情况下,从第0项0开始)能取到第46项1836311903,47项溢出 时间限制:1秒 空间限制:32768K 热度指数:473928 题目描述 大家都知道斐波那契数列,现在要求 ...

  5. 剑指Offer-4.重建二叉树(C++/Java)

    题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2 ...

  6. 剑指offer4:重建二叉树(后序遍历)

    1. 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4 ...

  7. 剑指offer-4:变态条楼梯

    ##四.变态条楼梯 ###题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. ###分析 也是斐波那契数列问题,根据上述的思路,可 ...

随机推荐

  1. js判断字符串长度

    方法1: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (t ...

  2. Ubuntu下安装vsftpd

    1.sudo apt-get install vsftpd 2.修改配置文件 sudo gedit /etc/vsftpd.conf write_enable=YES ls_recurse_enabl ...

  3. Nginx配置优化

    Nginx优化: 并发优化 KeepAlive长连接 压缩优化 配置缓存 两个监控工具: nginx_status:并发统计 Ngxtop:请求统计 Nginx配置并发.长连接.压缩.状态监控: 关闭 ...

  4. BUG笔记:Win XP IE8下HTML Parsing Error: Unable to modify the parent container element before the child

    [Bug描述]Windows XP IE8的某些版本下页面只显示一部分,其余为空白.IE左下角有惊叹号报错标志,点开后显示字符如下: HTML Parsing Error: Unable to mod ...

  5. mysql 权限管理 revoke 回收权限 命令

    回收所有库,所有表的所有权限 revoke all on *.* from 针对mike的账号 回收 所有库,所有表的select权限 mysql> revoke select on *.* f ...

  6. SRM 619

    easy:  假设每堆石头不全为1,那么每次我们总能取一堆石头分给另外两堆,堆数-1.而且新的局面肯定有一堆的个数大于1. 于是,假设每堆石头数都为1 -> lose.否则的话推断堆数奇偶就可以 ...

  7. js-jquery-Validate校验【一】

    一.导入 js 库 <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.j ...

  8. rplidar跑cartographer

    一.Cartographer编译 cartographer依赖的大型第三方库很少,编译时基本没有依赖项问题,基本按照官方文档的步骤来,略作修改.使用的环境是Ubuntu16.04+ROS Kineti ...

  9. 在ios上时间无法parse返回 "Invalid Date"

    百度搜索:" ios 上面 new date" 关键字 BUG 描述直接上原码 var psrseDate = Date.parse("2010-03-15 10:30: ...

  10. [py]python自省工具

    参考 在日常生活中,自省(introspection)是一种自我检查行为.自省是指对某人自身思想.情绪.动机和行为的检查.伟大的哲学家苏格拉底将生命中的大部分时间用于自我检查,并鼓励他的雅典朋友们也这 ...