雙周賽102。好像很多人被0的長度搞到,算是小陷阱。

題目

輸入M*N的矩陣grid。
欄位的寬度為該行整數中最長的字串長度

  • 例如:grid = [[-10], [3], [12]],最長的整數為-10,則該行寬度為3

回傳大小為n的整數陣列ans,其中ans[i]代表第i行的寬度。

整數x是len位數,若x為非負數則長度為len;若為負數則為len+1。

解法

特別注意,題目要求是各行的最大長度,也就是直的往下看。

直接把整數轉成字串後判斷長度最方便,不用考慮正負或是零。

時間複雜度O(MN log (MX)),其中M為列數,N為行數,MX為nums[r][c]中的最大絕對值。忽略輸出答案陣列,空間複雜度O(1)。

class Solution:
    def findColumnWidth(self, grid: List[List[int]]) -> List[int]:
        M,N=len(grid),len(grid[0])
        row=0
        ans=[]
        
        for c in range(N):
            mx=0
            for r in range(M):
                x=str(grid[r][c])
                mx=max(mx,len(x))
            ans.append(mx)
            
        return ans