No.145 PostorderTraversal 二叉树的后序遍历

题目

  • 给定一个二叉树,返回它的 后序 遍历。
  • 进阶: 递归算法很简单,你可以通过迭代算法完成吗?

示例

  • 输入: [1,null,2,3]
  • 输出: [3,2,1]

思路

代码

No.146 LRUCache LRU缓存机制

题目

  • 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。
  • 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。
  • 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。

  • 进阶:
  • 你是否可以在 O(1) 时间复杂度内完成这两种操作?

示例

  • LRUCache cache = new LRUCache( 2 /* 缓存容量 */ );
  • cache.put(1, 1);
  • cache.put(2, 2);
  • cache.get(1); // 返回 1
  • cache.put(3, 3); // 该操作会使得密钥 2 作废
  • cache.get(2); // 返回 -1 (未找到)
  • cache.put(4, 4); // 该操作会使得密钥 1 作废
  • cache.get(1); // 返回 -1 (未找到)
  • cache.get(3); // 返回 3
  • cache.get(4); // 返回 4

思路

代码

No.147 InsertionSortList 对链表进行插入排序

题目

  • 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。
  • 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。

  • 插入排序算法:
  • 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
  • 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
  • 重复直到所有输入数据插入完为止。

示例

  • 输入: 4->2->1->3
  • 输出: 1->2->3->4

  • 输入: -1->5->3->4->0
  • 输出: -1->0->3->4->5

思路

代码

最新文章

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
  2. java中this 关键字的使用
  3. C++学习12 友元函数和友元类
  4. 地图 ajax-数据库
  5. java第四课:数组
  6. C#如何使用和开发自定义配置节
  7. 一个项目覆盖CS所有课程的可行性探究
  8. hdu 1317 XYZZY
  9. 远程调用之RMI技术
  10. Jquery EasyUI tabs处理
  11. 74HC166与TPIC6A595分析(转)
  12. 结构体的vector resize()与初始化
  13. quart-process_bar
  14. Maven 插件之 docker-maven-plugin 的使用
  15. [转帖]浅谈程序中的text段、data段和bss段
  16. tomcat-四种运行模式和三种部署模式(优化)
  17. 有关Set集合的一个小问题
  18. 微软MVP社区秋日巡讲 —— 北京Windows Phone应用开发训练营
  19. html<input>输入框中各种正则表达式设置
  20. [Selenium]通过JavaScript来对隐藏的元素执行操作

热门文章

  1. 【LeetCode】最长公共子序列
  2. docker创建redis容器
  3. python刷LeetCode:9. 回文数
  4. 2020/1/31 PHP代码审计之文件包含漏洞
  5. AT1983 BBQ Hard 解题报告
  6. delphi 串口的打开与关闭
  7. Spring中的控制反转和依赖注入
  8. 十二、GUI设计-画图程序
  9. 光纤卡网卡的区别以及HBA的常规定义-----引自百度百科
  10. Pmw大控件(二)