刷题Day55|101.孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿

引用:代码随想录(http://www.programmercarl.com

101. 孤岛的总面积

101. 孤岛的总面积 (kamacoder.com)

思路:dfs或者bfs遍历。因为孤岛不能接触边缘,所以从边上开始找结点开始遍历,使用沉岛思想。遍历一遍全表的时候,统计岛的数量。

102. 沉没孤岛

102. 沉没孤岛 (kamacoder.com)

思路:dfs或者bfs遍历。从边上找节点开始遍历,遍历到的点不沉,标记为2。然后遍历一遍全表的时候沉岛。最后遍历一遍表把标为2的节点置为1。

103. 水流问题

103. 水流问题 (kamacoder.com)

普通思路:遍历每个点,然后看这个点能不能同时到达第一组边界和第二组边界。

优化思路:反过来想,从第一组边界上的节点逆流而上,将遍历过的节点都标记上。从第二组边界的边上节点逆流而上,将遍历过的节点也标记上。然后两方都标记过的节点就是既可以流太平洋也可以流大西洋的节点。

104. 建造最大岛屿

104. 建造最大岛屿 (kamacoder.com)

优化思路:第一次遍历地图,得出各个岛屿的面积,并做编号记录。可以使用map记录,key为岛屿编号,value为岛屿面积。第二次遍历地图,遍历0的方格(因为要将0变成1),并统计该1(由0变成的1)周边岛屿面积,将其相邻面积相加在一起,遍历所有0之后,就可以得出选一个0变成1 之后的最大面积。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值