美国某前端职位面试题-- 寻找最大shape
2014-09-19 10:57
393 查看
/* * 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 * */ 连续的一片1,定义为一个shape, 在这里 有2个shape.
题目是寻找连续的1的SHAPE的最大size,在以上例子,最大的一块是5. 另外一块的size是1,所以 这里应该返回5.
解法1是:
用一个arraylist来记录所有的shape的size
另外用一个hashmap来记录所有的 1 对应的在arraylist的SHAPE的 index.
遍历,并且在左边和上边找有没有1,如果有,则通过hashmap找到对应的另一个arraylist的索引,然后把size 加1,更新max.
如果没有相邻节点,则新建一个shape, 并且将它的索引添加到arraylist中。
解法2: 直接用DFS, 将1的点的周边进行DFS,并且用一个二维ARRAY来存储访问过的标记,算法复杂度为O(n).
相关文章推荐
- 经典面试题--寻找01矩阵中最大的1矩形(POJ 3494)
- 面试题30:寻找最大(小)的k个数
- 九章算法面试题45 寻找最大的储水容器
- 前端面试题系列
- 一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)
- 2016最全的web前端面试题及答案整理
- 纯福利 | 前端新人面试题汇总-基础篇
- 前端JS面试题
- 奥巴马对美国影响最大的十句话
- 编程之美 寻找最大的K个数
- 中国电信市场类职位面试题和笔试题库及参考答案(内部竞聘和社招用)
- 寻找最大的k个数,TopK问题的C++实现
- 华为机试 寻找最大正方形
- 南阳理工训练题《寻找最大数》
- 2.10 寻找数组中的最大值和最小值
- WEB前端面试题查询整理
- 寻找最大数
- 算法训练 寻找数组中最大值
- 面试题65:滑动窗口的最大值
- 老外的前端面试题