前往
大廳
主題

LeetCode - 661. Image Smoother 解題心得

Not In My Back Yard | 2020-12-14 00:00:05 | 巴幣 0 | 人氣 335

題目連結:


題目意譯:
給定一個二維的整數矩陣 M 代表著一張圖片的灰階,你需要設計一個校平器(Smoother)讓每格灰階變為其周遭八格以及自身的平均(向下取整)。如果有格子周遭不滿八格,則盡量能取多少格就取多少。

注:
給定的矩陣中,每格值的範圍位於 [0, 255]。
給定的矩陣之長度以及寬度的範圍位於 [1, 150]。



範例測資:
輸入:
[[1,1,1],
[1,0,1],
[1,1,1]]
輸出:
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
解釋:
對於點 (0,0) 、 (0,2) 、 (2,0) 、 (2,2): floor(3 ÷ 4) = floor(0.75) = 0
對於點 (0,1) 、 (1,0) 、 (1,2) 、 (2,1): floor(5 ÷ 6) = floor(0.83333333) = 0
對於點 (1,1): floor(8 ÷ 9) = floor(0.88888889) = 0


解題思維:
就是單純地掃過每一格,然後看周遭八格(記得判斷對應的位置有沒有超過矩陣外面),加上自身之值取平均。然後將該平均值放到新矩陣 M' 的相對應位置(不能直接覆蓋到 M 上,因為會影響其他格的結果)裡面。

最後回傳 M' 即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作