面朝大海_春暖花开 level
获赞
1
粉丝
1
关注
7
看过 TA
2
西北大学
2021
Java
IP属地:陕西
暂未填写个人简介
私信
关注
2020-09-05 12:20
西北大学 Java
求个大佬帮我看下为啥会超时,用的是从上下左右四个边界缩,直到只有一个元素的方法。 public class Solution { public boolean Find(int target, int [][] array) { if(array.length==0||array[0].length==0)return false; int rowl=0,rowr=array.length-1; int coll=0,colr=array[0].length-1; int temp1; int temp2;...
凉风起天末:超时是因为程序进入了死循环,您的代码是使用左下、右上两个元素来改变边界,而使用左上、右下元素来判断是否终止算法,当数组中只有一个目标元素时,程序不会有问题,但是当数组中存在多个目标时,就可能出现目标元素卡在边界左下、右上的情况,这会使边界无法移动,终止条件也不会被触发,从而造成死循环。解决方法是使用四个元素中的其它元素来进行true判断。 这里构造一个会导致死循环的测试用例:{{1,2,3}, {2,3,4}, {3,4,5}}, target=3
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务