Algorithm
原题链接:剑指 Offer 04. 二维数组中的查找
解题思路
一开始没有思路,看了书,去按照书里的思路实现了下。
注意在设计函数时,先考虑空输入,这是一个送分题,但是总是容易忘记哦。
不知效率为何这么低,下周优化下。
代码
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if(matrix.size() == 0)
return false;
int nRow = matrix.size();
int nColumn = matrix[0].size();
int nBeginRow = 0;
for(int i = nBeginRow; i < nRow; i++)//row
{
for(int j = nColumn - 1; j >= 0; j--)//column
{
// if target < item, then delete current column
if(target < matrix[i][j])
{
nColumn--;
i--;
break;
}
// if target > item, then delete current row
if(target > matrix[i][j])
{
nBeginRow++;
break;
}
if(target == matrix[i][j])
{
return true;
}
}
}
return false;
}
};
作者:stephen-uf
链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/solution/liang-zhong-xun-huan-xiao-lu-di-by-steph-6bih/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Review
Beauty Is in Simplicity大美至简(97 Things Every Programmer Should Know 5/97)
Tips
1.在填写一些需要花很久才能完成的系统时,注意系统的超时时间,比如报名或者申请系统.可以先准备好材料,集中时间去填写.
2.可以把每次填报番茄钟当做汇报,把这段时间的结论告诉她,并且考虑她会向你提问,你需要向她解答.(十岁法则)
3.打印时要写好相关信息,在循环里边要加上条目。
4.可以记录下环境配置的过程,一些设备的ip,软件的登录名,密码.