我是这种硬算法的新手,但是大约30个小时后我得到了下面的代码。
对于小地图,它的工作原理如下:
import numpy as np
def rankVec(arg):
p = np.unique(arg) #take unique value
k = (-p).argsort().argsort() #sort based on arguments in ascending order
dd = defaultdict(int)
for i in xrange(np.shape(p)[0]):
dd[p[i]] = k[i]
return np.array([dd[x] for x in arg])
但是对于巨大的地图 - 50x50 1000高度我发现了一个奇怪的错误:
通过更改 DIRECTION 静态位置,我得到了不同的结果。
有任何想法如何解决这个错误?
1
5 5
1 3 5 6 3
3 2 1 1 3
4 2 5 1 5
6 3 4 9 3
5 7 2 1 1
Output: 8