python写算法题:leetcode: 59. Spiral Matrix II

    xiaoxiao2025-09-24  49

    class Solution(object): def val(self, n, x, y): px=n-1-abs(2*x-n+1) py=n-1-abs(2*y-n+1) v=min(px,py) if v>=n-1: return n*n v/=2 passv=(n-v)*v*4 if px>=py: if y<=(n-1)/2: return passv+x-y+1 else: return passv+2*(n-2*v-1)-x+y+1 else: if x>=n/2: return passv-x+y+2*(n-2*v-1)+1 else: return passv+x-y+(n-2*v-1)*4+1 def dump(self, mat): for vs in mat: print ["="%v for v in vs] def generateMatrix(self, n): """ :type n: int :rtype: List[List[int]] """ ret=[] for i in xrange(n): item=[] for j in xrange(n): #print i,j,self.val(n,j,i) item.append(self.val(n,j,i)) ret.append(item) return ret

     

    最新回复(0)