算法
小可爱的大笨蛋
这个作者很懒,什么都没留下…
展开
-
一、假期番外篇——动态规划,Leetcode121(1)
春节期间,根本没时间去做项目,只能开启刷题模式,决定以Leetcode为平台,入坑算法,重新学习动态规划。 选择的题目是Leetcode的第121题:买卖股票的最佳时机。 这是Leetcode的题目描述,接下来就开始解决。 刚开始考虑的是暴力破解:假设当前为买入,之后的所有都为卖出,算出每一个的差值,返回最大差值。 public static int maxProfit(in...原创 2019-02-08 00:02:57 · 243 阅读 · 0 评论 -
Leetcode:探索二叉树(递归方式,Leetcode144,94,145)
本章目标: 理解和区分树的遍历方法 能够运用递归方法解决树的为前序遍历、中序遍历和后序遍历问题 能用运用迭代方法解决树的为前序遍历、中序遍历和后序遍历问题 能用运用广度优先搜索解决树的层序遍历问题 1. 二叉树的遍历方法 (1). 前序遍历:先打印根节点,再打印左儿子,最后打印右儿子。 (2). 中序遍历:先打印左儿子,再打印根节点,最后打印右儿子。 (3). 后序遍历:先打印左儿子,再...原创 2019-04-03 23:10:56 · 255 阅读 · 0 评论 -
Leetcode: 513. 找树左下角的值
题目: 给定一个二叉树,在树的最后一行找到最左边的值。 思路:遍历每一层,输出最后一层的节点的值。 如上图:最终的结果应该是 7 。 接下来是应该怎么去设计算法: 用一个容器去保存节点,该容器应该满足先进先出(保证优先输出左边)。毋庸置疑就是队列来做。 先将根节点放入队列中(第一层放入)。 获取队列的大小,如果为空,则返回结果。 如果队列不为空,则判断当前节点是否有左右子节点,有则放入队...原创 2019-04-02 22:45:53 · 242 阅读 · 0 评论 -
Day 1、字符串的旋转
要求:将字符串的前面的若干个字符移到字符串的后面。 例如:将 abcdef 的 abc 移动到 def 的后面。 1. 暴力破解 所谓的暴力法就是将字符的每一个字符挨个移动到当前的字符串的后面,如果说字符串的总长度为 n,移动的位数为 m,则暴力破解法需要的复杂度就是O(n*m),控件复杂度为O(1)。 这个时间复杂度是比较高的,所以我们需要找一种更好的方式进行优化。 3. 三...原创 2019-06-19 23:09:05 · 174 阅读 · 0 评论