剑指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-29 12:34
门头沟学院 Java
时间:&nbsp;2024.10.29&nbsp;11:30&nbsp;&nbsp;一人面试&nbsp;非群面1.&nbsp;自我介绍2.&nbsp;除了本科阶段课堂学习java之外,别的途径怎么学习java的3.&nbsp;项目是自学的,还是参与公司开发的4.&nbsp;jdk、jre、JVM的区别5.&nbsp;volatile&nbsp;了解吗?&nbsp;作用是什么?6.&nbsp;++操作符是线程安全的吗?7.&nbsp;如何创建一个线程8.&nbsp;runnable和callable有什么区别9.&nbsp;线程池的核心参数10.&nbsp;有了线程之后,为什么还要线程池?11.&nbsp;简历中提到线程池,是怎么用的,&nbsp;它的作用是什么,他的目的是什么?是提高查询速度还是怎么样?12.&nbsp;如何来确保线程安全?13.&nbsp;用到哪些消息中间件(Rabbitmq),有哪些消息模型?14.&nbsp;生产者广播消息,怎么设计15.&nbsp;消费者是怎么获取消息的,&nbsp;是直接连交换机吗?16.&nbsp;生成者发生消息到两个消息队列,消费1能收到几条17.&nbsp;另一种场景,一个消费者消费一条消息,怎么设计18.&nbsp;spring、Springboot、springmvc、Mybatis、SpringCloud有哪些常用的注解(当时想不起了,就随便说了几个)19.&nbsp;SpringbootApplication注解的作用20.&nbsp;看你使用了微服务,SpringCloud&nbsp;alibaba有哪些你用到的组件?21.&nbsp;Gateway你了解他的工作流程吗?22.&nbsp;这个路由转发包含哪些要素呢?23.&nbsp;redis有哪些基本类型,以及hash怎么实现put操作(redis命令)24.&nbsp;redis的持久化机制?25.&nbsp;MySQL索引失效的原则?反问:1.&nbsp;这是我第一次面试,比较紧张,语速太快,有什么不足以及可以学习的地方?2.&nbsp;会有岗前培训吗(面试官:&nbsp;我们的系统是基于SpringCloud实现的,然后进行封装,有对应的岗前培训,巴拉巴拉)总结:一面难度还行,都是基础八股文,&nbsp;没有底层深挖,场景延伸不多,也没有手撕算法,面试官也挺好,没有刻意为难,基本上都是会结合着简历问一些东西。#软件开发2024笔面经##java面经##java##面试##牧原集团#
查看27道真题和解析 软件开发2024笔面经
点赞 评论 收藏
分享
牛客网
牛客企业服务