2017-09-23 1 views
0

spiralOrder와 recurSpiral의 두 가지 메소드가 있는데, spiralOrder가 내 주요 메소드입니다. 그것은 나선형입니다 인쇄하기 때문에 spiralArray,하지만 다음 줄에 나선형 배열을 반환하면 null을 반환합니다. 나는 아주 간단한 것을 놓치고있는 것처럼 느껴집니다. 감사합니다함수는 배열 객체 대신 null을 반환하며 매우 간단하게 보입니다.

class Solution(object): 
    def spiralOrder(self, matrix): 
     """ 
     :type matrix: List[List[int]] 
     :rtype: List[int] 
     """ 
     spiralArray = [] 
     final = self.recurSpiral(matrix, spiralArray) 
     return final 

    def recurSpiral(self, matrix, spiralArray): 
     print matrix 
     if(len(matrix) == 0 or len(matrix[0]) == 0): 
      print spiralArray 
      return spiralArray 

     if(len(matrix) <= 2 or len(matrix[0]) <= 2): 
      self.firstThree(matrix, spiralArray) 
      return spiralArray 

     spiralArray = self.firstThree(matrix, spiralArray) 
     print spiralArray 

     notFirst = False 
     for l in reversed(matrix[1:]): 
      if(notFirst): 
       spiralArray.append(l[0]) 
      else: 
       notFirst = True 
     print spiralArray 
     self.recurSpiral(matrix[1:-1][1:-1], spiralArray) 

    def firstThree(self, matrix, spiralArray): 

     for i in matrix[0]: 
      spiralArray.append(i) 

     notFirst = False 
     for j in matrix: 
      if(notFirst): 
       spiralArray.append(j[len(matrix[0])-1]) 
      else: 
       notFirst = True 

     notFirst = False 
     for k in reversed(matrix[len(matrix)-1]): 
      if(notFirst): 
       spiralArray.append(k) 
      else: 
       notFirst = True 

     print spiralArray 
     return spiralArray 
+0

또한 사용중인 매개 변수를 제공해야합니다. – Pierre

+0

@DanilSperansky 이미 있습니다. 부분적으로는 –

+1

입니다. 파이썬은 null을 반환하지 않습니다. 그것은 '없음'을가집니다. 그리고 그것은 return 문이 도달하지 않았 음을 의미합니다. –

답변

0

귀하의 기능이 끝날 때 귀환 신고서가 누락되었습니다. 대신에 :

self.recurSpiral(matrix[1:-1][1:-1], spiralArray) 

이 있어야한다 : 함수의 끝이 해당 경로에 도달하면

return self.recurSpiral(matrix[1:-1][1:-1], spiralArray) 

그렇지 않으면 함수가 None를 반환합니다.

+0

또한 'firstThree'의 반환 값을 사용하는 경우도 있고 두 번째 인수를 수정하기를 기대하는 경우도 있습니다. 명확성을 기하기 위해 항상 반환 값을 사용하거나 항상 두 번째 인수가 수정 될 것으로 기대합니다. – MondKin

관련 문제