这篇文章主要为大家介绍了Java C++题解leetcode904水果成篮示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
题目要求
阅读理解
读完题的我be like:
去看了遍英文版就懂了,题目中的种类【type】不是种类数……每个数字代表一种树【用个字母啥的表示或者翻译成类型就好理解多了】,那么目标就是找从哪里开始可以维持两种数字(种类)无规律交替出现的状态最久,这个最久是多少棵树。
思路:滑动窗口
- 窗口里可放两棵树,一棵是枣树,另一棵还是枣树。 向后遍历整排树,并更新最长状态。
Java
数组
- 时间复杂度:O(n)
- 空间复杂度:O(n)
哈希表
可使用哈希表构建窗口,降低空间复杂度。
- 键对应篮子,值对应同类树数量;
- 当值为000注意要彻底删掉键。
- 时间复杂度:O(n)
- 空间复杂度:O(1)
C++
数组
- 时间复杂度:O(n)
- 空间复杂度:O(n)
哈希表
可使用哈希表构建窗口,降低空间复杂度。
- 时间复杂度:O(n)
- 空间复杂度:O(1)
总结
- 今天不想rust了……主体和这两种语言差不多,要多些类型转换balabala的内容
以上就是Java C++题解leetcode904水果成篮的详细内容,更多关于Java C++题解水果成篮的资料请关注编程学习网其它相关文章!