剑指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

相关推荐

#2024招聘##春招##丰巢科技#我给丰巢科技写了一封感谢信,发了邮件给公司:尊敬的丰巢科技公司:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我是***,一名去年秋招投递简历到贵公司,并&quot;有幸&quot;参加丰巢科技组织的线下面试且据hr通知通过了面试。现在写这封感谢信的目的是通知贵公司,我永久性的不再考虑成为贵公司的员工。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;回想去年11月初,早早起床就去华南理工大学大学城校区内的酒店参加线下面试,因为短信通知8:40签到,我在第一批面试名单中(9:00&nbsp;-&nbsp;10:30批次)。等到了10:40出头才迎来了我的一面,等待煎熬,中途我想走掉,后来好几次回忆这个想法:“幸好没走掉,面试通过了!”。好在团队都很用心,准备小零食啦,准备小礼品啦,酒店的环境也很安静,我们需要做的只需要等待,终于一天下来,三面结束。 没等几天,就收到了贵公司hr打来的电话,类似恭喜通过了面试,正式offer再下周开始发放之类的。实事求是的讲,hr还贴心的说到不保证100%都会发放offer。发放的意向(offer call)>&nbsp;录用(offer)其实这也挺合理,我们能理解公司考虑到面试者也不一定都接offer。如果后面给我发了一个感谢信,我也觉得虽有“不甘”,也能接受。实际上接下来两周时间,没有任何主动通知,都是我主动联系,接到电话的后一周,我联系了hr,hr说一般上周oc了没问题,还在发放中。这一周的时间我都在推迟另一个公司的三方协议。再过一周左右,我又联系hr,hr说你在这个岗位排名第三,在第二批次中,大概意思是可能会发,也可能不会发offer,没有offer会发感谢信通知!后面没有等到感谢信,也没等到offer,我也没再打过电话,是公司忘记了,还是公司比较贴心,担心发感谢信会让面试者伤心,所以选择不发了,又或者是没有发放感谢信的传统,不得而知!可能是丰巢科技的岗位和offer我比较心仪,所以比较上心,所以才记得丰巢没给我发感谢信,其他公司我却不记得,所以到这里也算不上什么...&nbsp;&nbsp;&nbsp;字数限制,见评论
投递丰巢科技等公司7个岗位
点赞 评论 收藏
转发
头像
投递知乎等公司7个岗位
点赞 评论 收藏
转发
牛客网
牛客企业服务