No.154 FindMin 寻找旋转排序数组中的最小值 II

题目

  • 假设按照升序排序的数组在预先未知的某个点上进行了旋转。
  • ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
  • 请找出其中最小的元素。
  • 注意数组中可能存在重复的元素。

示例

  • 输入: [1,3,5]
  • 输出: 1

  • 输入: [2,2,2,0,1]
  • 输出: 0

说明

  • 这道题是 No.153 寻找旋转排序数组中的最小值 的延伸题目。
  • 允许重复会影响算法的时间复杂度吗?会如何影响,为什么?

思路

代码

No.155 MinStack 最小栈

题目

  • 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

  • push(x) -- 将元素 x 推入栈中。

  • pop() -- 删除栈顶的元素。
  • top() -- 获取栈顶元素。
  • getMin() -- 检索栈中的最小元素。

示例

  • MinStack minStack = new MinStack();
  • minStack.push(-2);
  • minStack.push(0);
  • minStack.push(-3);
  • minStack.getMin(); --> 返回 -3.
  • minStack.pop();
  • minStack.top(); --> 返回 0.
  • minStack.getMin(); --> 返回 -2.

思路

代码

No.156 UpsideDownBinaryTree 上下翻转二叉树

题目

  • 给定一个二叉树,其中所有的右节点要么是具有兄弟节点(拥有相同父节点的左节点)的叶节点,要么为空,将此二叉树上下翻转并将它变成一棵树, 原来的右节点将转换成左叶节点。返回新的根。

示例

  • 输入: [1,2,3,4,5]
  • 1
  • / \
  • 2  3
  • / \
  • 4 5
  • 输出: 返回二叉树的根 [4,5,2,#,#,3,1]
  • 4
  • / \
  • 5 2
  • / \
  • 3 1

说明

  • 二叉树的序列化遵循层次遍历规则,当没有节点存在时,'#' 表示路径终止符。

思路

代码

最新文章

  1. FPGrowth算法总结复习
  2. 关于ibatis中mysql的@变量问题作用域、污染问题
  3. Ubuntu下安装Naginx, PHP5(及PHP-FPM),MySQL
  4. Python基础一. 简介、变量、对象及引用
  5. [JS8] 显示从(0,0)到(0,0)的坐标
  6. 高端PCB设计相关知识整理
  7. 一次由于字符集问题引发的MySQL主从同步不一致问题追查
  8. City Skyline
  9. 转】Linux下安装Tomcat服务器和部署Web应用
  10. ACM OJ Collection
  11. js购物时的放大镜效果
  12. asp.net设置元素css的属性
  13. Sublime 学习记录(三) Emmet 插件
  14. aix Mysql-Rpm puppet puppetAgent
  15. uva 103 Stacking Boxes(DAG)
  16. JSP打印九九乘法表
  17. sql中 datediff的使用
  18. 从.Net版本演变看String和StringBuild性能之争
  19. 【前端】主流API-promise解析,js基础。
  20. POJ Ikki's Story IV - Panda's Trick [2-SAT]

热门文章

  1. 安卓app测试之Monkey日志分析《转载》
  2. unique constraint(PD.HSI_RIGHT) violated
  3. C# web.config常用配置说明(文件上传大小、调试、session)
  4. Jeesite 定时任务 Task
  5. tomcat的8080,8009,8443,8005都是什么端口
  6. JZOJ-TGB817-SOL
  7. 使用那各VUE的打印功能(print.js)出现多打印一个空白页的问题
  8. C# 串口编程,扫码枪使用
  9. CodeForces 1000B Light It Up(贪心、思维)
  10. 技术沙龙|京东云区块链进校园-京东云&深圳大学线下沙龙分享回顾