百度 笔试爬山求指教

用这种递归的方式做,为什么只有80%,请问有什么情况没考虑到

inx =raw_input().split()
#print inx
n = int(inx[0])   #n行
m = int(inx[1])    #m列
ins = raw_input().split()
sx = int(ins[0])-1    #起始位置
sy = int(ins[1])-1
#print(n,m,sx,sy)
l = []
for o in range(n):
    l.append(raw_input().split())    #矩阵赋值
class a(object):
    dx = [0,0,1,-1]    #四种走法
    dy = [1,-1,0,0]
    maxhigh = 0
    def go(self,l,sx,sy):
        curhigh = int(l[sx][sy])
        if curhigh>self.maxhigh:
            self.maxhigh = curhigh
        for x,y in zip(self.dx,self.dy):
            if sx+x>=0 and sx+x<m and sy+y>=0 and sy+y<n:    #判断边界
                nextx ,nexty = sx+x,sy+y
                if int(l[nextx][nexty])>curhigh:    #下一步海拔高就走到那一步
                    sx ,sy= nextx,nexty
                    self.go(l,sx,sy)
                else:
                    continue
        return self.maxhigh
b = a()
print b.go(l,sx,sy)
#百度#
全部评论
这个题我觉得用bfs做最好
点赞 回复 分享
发布于 2018-04-19 02:35
海拔相同的也可以走?
点赞 回复 分享
发布于 2018-04-18 22:13
过了80%一般都是速度问题,你记录一下访问过的节点,和深度优先一样,访问过的节点就不要重复访问了
点赞 回复 分享
发布于 2018-04-18 22:11
感觉每个人的题不一样额
点赞 回复 分享
发布于 2018-04-18 22:01

相关推荐

02-25 23:53
门头沟学院 Java
神哥不得了:神哥来啦~自我评价和校园经历的话可以直接删了,从大厂暑期的话应该没有什么太多问题,应该是能拿到很多大厂面试机会的,就是在面试的时候表示的好一点就行,可以在面试前先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股,这两个项目的话问题不是很大,应该能够帮你找到大厂实习的,算法的话一定要刷起来,因为大厂有些还是比较看重算法的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务