Sunday, November 25, 2018

[LeetCode]Island Perimeter

这道题可以用DFS解,找所有能够通过的边从而到达0或者界外。但是这道题还有另外一种非常直观的解法,对于每一个单位square,我们首先默认总的perimeter加4,如果其上面有相邻的sqaure,那么需要减去两个square重叠的两条边,所以需要减2,左边如果有相邻的同理。为何避免重复计算,我们只检查上面和左边,不查右边和下边。时间复杂度O(m * n),假设输入m行n列,代码如下:


No comments:

Post a Comment