啊,好吧,我菜,写了一天多一点写完这题
这个算是我的草稿,里面还有我把过去的代码注释掉的部分
是我的求错的历程
将这个代码复制到pycharm是可以良好运行的,我已经测试了3*3 , 4*4, 5*5的矩阵了,后面的部分应该也是可以运行的
啊,菜鸡有点开心,写出来一道题真的是不错的
另外,突然感觉写代码会上瘾,这个,有点难办哈哈哈哈,每天如果这道题写不出来的话,会想着把这道题写出来
向着高手的道路继续前进,菜鸡的我继续努力哈哈哈哈
emmmm,顺带提,牛客的编译器不知道为啥没法运行,求大神解惑,我还没搞懂牛客编译器的原理,网页编译器和pycharm有什么不同呢?
好吧,后来我发现为什么牛客编译器过不了了,牛客编译器有大概50个测试样例,各种各样的,而题目本来是MxN的,我写的是NxN的,继续优化吧我
#
#
# @param matrix int整型二维数组
# @return int整型一维数组
#

class Solution:
    def spiralOrder(self , matrix ):
        # write code here
        self.matrix = matrix
        self.count_result = []
        self.length_heng = len(self.matrix)
        #print("heng:",self.length_heng)
        self.zi_matrix = self.matrix[0]
        self.length_lie = len(self.zi_matrix)
        #print("lie",self.length_lie)
        self.zuizhongshuchuliebiao = []
        shu1 = self.length_heng
        shu2 = self.length_lie
        chushishu = 0
        i = 0
        j = 0
        count = 0
        for q in range(self.length_heng * self.length_lie):
            if j < shu2 - 1 and i == chushishu:
                #print(self.matrix[i][j])
                self.zuizhongshuchuliebiao.append(self.matrix[i][j])
                #print("xiangyou")
                j = j + 1

            elif j == shu2 - 1 and i < shu1 - 1:
                #print(self.matrix[i][j])
                self.zuizhongshuchuliebiao.append(self.matrix[i][j])
                #print("xiangxia2")
                i = i + 1
            elif i == shu1 - 1 and j > chushishu:
                #print(self.matrix[i][j])
                self.zuizhongshuchuliebiao.append(self.matrix[i][j])
                #print("xiangzuo")
                j = j - 1
            elif j == chushishu and i > chushishu:
                #print(self.matrix[i][j])
                self.zuizhongshuchuliebiao.append(self.matrix[i][j])
                #print("xiangshang")
                i = i - 1

                if i == j == chushishu :#and chushishu == 0:
                    i += 1
                    j += 1
                    #print('ci shi de i',i)
                    #print("ci shi de j",j)
                    chushishu += 1
                    shu1 = shu1 - 1
                    shu2 = shu2 - 1
                    #print("ci shi de shu 1",shu1)
                    #print("ci shi de shu 2",shu2)
                    #print("di{},lun kai shi",chushishu)

                if i == j == chushishu == (shu1 - 1) == (shu2 - 1):
                    #print(self.matrix[i][j])
                    self.zuizhongshuchuliebiao.append(self.matrix[i][j])
                    #print("zhongdian")
                    break
    def result_print(self):
        print(self.zuizhongshuchuliebiao)




        #
        #     elif j == shu2 - 1 and i == chushishu:
        #         if i < shu1 - 1 and j == shu2 - 1:
        #             print(self.matrix[i][j])
        #             print("xiangxia")
        #             i = i + 1
        #         elif i == shu1 - 1 and j > chushishu:
        #             print(self.matrix[i][j])
        #             print("xiangzuo1")
        #             j = j - 1
        #             #j = j - 1
        #
        #                 # if j != chushishu and i == shu1 - 1:
        #                 #     print(self.matrix[i][j])
        #                 #     print("jixuxiangzuo")
        #                 #     j = j - 1
        #                 #     #if i != 0:
        #                  #   i = i - 1
        #             if j == chushishu and i != chushishu:
        #                 print(self.matrix[i][j])
        #                 print("xiangshang")
        #                 i = i - 1
        #                 # if i != chushishu + 1 and j == chushishu:
        #                 #
        #                 #     print(self.matrix[i][j])
        #                 #     i = i - 1
        #                 #     print("jixuxiangshang")
        #                 # print("ci shi de i:",i)
        #                 # print("ci shi de  j:",j)
        #                 '''
        #                 if i <= chushishu + 1:
        #                     i = chushishu + 1
        #                     print("hou lai de i:", i)
        #                     #chushishu += 1
        #
        #                     shu1 = shu1 - 2
        #                     print("ci shi shu1:",shu1)
        #
        #                     shu2 = shu2 - 2
        #                     print("ci shi shu2:", shu2)
        #
        #                     if shu1-1 < chushishu:
        #                         shu1 = chushishu + 1
        #                         print("shu1 wei 1 le")
        #                     if shu2-1 < chushishu:
        #                         shu2 = chushishu + 1
        #                         print("shu2 wei 1 le")
        #
        #                     #j = j + 1
        #
        #                     #print("hou lai de j:",j)
        #                     if j <= chushishu + 1:
        #                         j = chushishu + 1
        #                         print("hou lai de j:", j)
        #                         chushishu += 1
        #
        #                     '''
        #
        #
        #     if i == chushishu +1 and j == chushishu:
        #         print(self.matrix[i][j])
        #         j= j + 1
        #         chushishu += 1
        #         shu1 = shu1 - 2
        #         shu2 = shu2 - 2
        #         #if i == j == shu1 == shu2:
        #             #print("zhongdian:", self.matrix[i][j])
        #     if i == shu1 - 1 and j == shu2 - 1:
        #         print(self.matrix[i][j])
        #
        #     count += 1
        #     if count == self.length_heng * self.length_lie:
        #         print("dao dian:")
        #         break
        # print("lie:", self.length_lie)
        # print("heng:", self.length_heng)

# ru guo zhi you yi ge biao ji wei, er wai mian na ge shi wei le suan lun ci de
# zzheyang yi ge da quan jiu nong wan le
# xun huan da quan wan hou ,mou ge s*** xing bian xiao
# kan kan bian xiao de gui lv shi shen me

a = input()
b = eval(a)
solu = Solution()
solu.spiralOrder(b)
solu.result_print()