关注
剑指offer二维数组中的查找,题目链接如下
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
class Solution
{
public:
bool Find(vector<vector<int> > array,int target)
{
bool found = false;
if(!array.empty())
{
int h = array.size();
int w = array[0].size();
if((target>array[h-1][w-1])||(target<array[0][0]))
return found;
int i = 0, j = w-1;
while((j>=0)&&(i<h))
{ if(array[i][j]==target)
{
found = true;
break;
}
else if(array[i][j]>target)
j--;
else
i++;
}
}
return found;
}
};
问题,提交的代码有段错误。
(在本机的GCC GNU 编译器可以通过)
1.猜想可能是,没有考虑数组为空的case。
添加相应的代码以后还是出现了段错误的问题。
2.猜想可能是数组越界
反复查看代码,没有看出来在数组宽和高
3.尝试提交代码的一部分,从答案错误一直提交到段错误。
出现多错误问题的代码锁定在这一部分
while((j>=0)&&(i<h))
{
if(array[i][j]==target) {
found = true;
break;
} else if(array[i][j]>target)
j--;
else
i++;
}
4.修改代码。发现如下情况
当把while循环里的内容改成
while(i<h&&j>=0)
{
bool ife = (array[i][j]==target);
i++;
}
或者
while(i<h&&j>=0)
{
bool ife = (array[i][j]==target);
j--;
}
都只是出现答案错误
可是当改变部分如下的代码提交时出现段错误
while(i<h&&j>=0)
{
if(target==array[i][j])
{
return true;
}
i++;
}
不清楚为什么一添加了return语句或者用一个变量保存的false值改变成true值就会出现段错误。
写break语句也只是答案错误。
提交了50多遍了,测了一个早上。暂时不清楚也找不到问题在哪。
管理员有空帮忙看看这个问题呀
查看原帖
点赞 1
相关推荐
10-21 19:49
门头沟学院 自动化测试 点赞 评论 收藏
分享
10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你实习是赚钱了还是亏钱了? #
6041次浏览 55人参与
# 找工作八股要背到什么程度? #
4611次浏览 88人参与
# 京东开奖 #
433659次浏览 2460人参与
# 秋招开始捡漏了吗 #
34951次浏览 245人参与
# 我在牛爱网找对象 #
202921次浏览 1412人参与
# 用一句话形容你的团队氛围 #
3694次浏览 50人参与
# 入职以后才知道的校招谎言 #
101980次浏览 647人参与
# 你找工作是从容有余 or 匆忙滚爬? #
3373次浏览 44人参与
# 上班后,才发现大学__白学了 #
5971次浏览 40人参与
# 同bg的你秋招战况如何? #
161199次浏览 935人参与
# 今年秋招还有金九银十吗 #
25981次浏览 238人参与
# 今年秋招是回暖还是遇冷 #
3605次浏览 30人参与
# 五一之后,实习真的很难找吗? #
90273次浏览 561人参与
# 规定下班时间vs实际下班时间 #
57120次浏览 332人参与
# 学历对求职的影响 #
552626次浏览 3924人参与
# 辞职后的日常 #
16765次浏览 84人参与
# 你喜欢工作还是上学 #
79407次浏览 865人参与
# 打工人的精神状态 #
103764次浏览 1321人参与
# Offer比较,求稳定还是求发展 #
65456次浏览 272人参与
# 分享一个让你热爱工作的瞬间 #
44529次浏览 395人参与
# 一人一个landing小技巧 #
128986次浏览 1467人参与