为什么解法二需要判断if left < right and top < bottom? 为什么向右和向下的时候不需要呢?
如果这个矩阵是一个长方形,遍历完若干圈,最后中心部分可能会留下一竖或者一横,这个时候left=right或者up=bottom,这个时候就只需要从左往右从上往下一次就行了,就不需要再执行里面的小于号这个判断条件了,只有一行或者一列的情况下也是这样的。
因为每次都是先往右走和先往下走,所以往右走和往下走的路一定是没走过的路,不需要加 if
判断;往左走的时候,如果 top == bottom
,那么会重复走之前从左往右走过的路,所以需要加上 top < bottom
的判断,同理往上走也一样。