算法
luweicheng24
今日的低头为了明日更好的抬头
展开
-
小米-基础算法-手写栈结构
实现一个栈,可以使用除了栈之外的数据结构 eg: 输入: push(1) pop() push(2) top() // return 2 pop() isEmpty() // return true push(3) isEmpty() // return false 个人实现: public class Stack { private int initCapacity = 8; ...原创 2019-01-28 11:08:22 · 305 阅读 · 0 评论 -
小米-基础算法-最近公共祖先
给一棵二叉树和二叉树中的两个节点,找到这两个节点的最近公共祖先LCA。 两个节点的最近公共祖先,是指两个节点的所有父亲节点中(包括这两个节点),离这两个节点最近的公共的节 点。 每个节点除了左右儿子指针以外,还包含一个父亲指针parent,指向自己的父亲。 实现: /** * Definition of ParentTreeNode: * * class ParentTreeNo...原创 2019-01-28 11:12:49 · 266 阅读 · 0 评论 -
小米-基础算法-二进制中有多少个1
计算在一个 32 位的整数的二进制表示中有多少个 1。 eg: 样例 1: 输入:32 输出:1 解释: 32(100000),返回 1。 样例 2: 输入:5 输出:2 解释: 5(101),返回 2。 实现: public class Solution { /* * @param num: An integer * @return: An integer ...原创 2019-01-28 11:15:31 · 195 阅读 · 0 评论 -
小米-基础算法-删除链表中倒数第n个节点
给定两个二进制字符串,返回他们的和(用二进制表示) eg : a = “11” b = “1” 返回 “100” 实现: public class Solution { /** * @param a: a number * @param b: a number * @return: the result */ public String ...原创 2019-01-28 11:18:58 · 116 阅读 · 0 评论 -
小米-基础算法-平衡二叉树
给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 样例 样例 1: 输入: tree = {1,2,3} 输出: true 样例解释: 如下,是一个平衡的二叉树。 1 / \ 2 3 样例 2: 输入: tree = {3,9,20,#,#,15,7} 输...原创 2019-01-31 10:41:46 · 150 阅读 · 0 评论 -
算法——翻转字符串II
描述 给定输入的字符数组,逐词翻转数组。单词被定义为不包含空格的字符串. 输入字符数组不包含前导或尾部空格,单词总是用单个空格分隔。 样例 给定 s = “the sky is blue”, 翻转之后 : “blue is sky the” 挑战 你能在不分配额外空间的情况下原地解决这个问题吗? 实现: public class Solution { /** * @param...原创 2019-02-22 20:44:25 · 199 阅读 · 0 评论 -
算法——山脉序列中的最大值
描述 给 n 个整数的山脉数组,即先增后减的序列,找到山顶(最大值) 您在真实的面试中是否遇到过这个题? 样例 例1: 输入: nums = [1, 2, 4, 8, 6, 3] 输出: 8 例2: 输入: nums = [10, 9, 8, 7], 输出: 10 实现: public class Solution { /** * @param nums: a mountai...原创 2019-02-22 20:46:43 · 632 阅读 · 0 评论 -
算法—— 最近公共祖先 III
给一棵二叉树和二叉树中的两个节点,找到这两个节点的最近公共祖先LCA。 两个节点的最近公共祖先,是指两个节点的所有父亲节点中(包括这两个节点),离这两个节点最近的公共的节点。 返回 null 如果两个节点在这棵树上不存在最近公共祖先的话。 样例 样例1 输入: {4, 3, 7, #, #, 5, 6} 3 5 5 6 6 7 5 8 输出: 4 7 7 null 解释: 4 / \ 3 ...原创 2019-02-22 20:51:07 · 207 阅读 · 0 评论 -
动态规划-解决公共字符串
动态规划 个人理解:动态规划就是记住已经解决过的子问题的解,大问题可以由子问题构成,所有问题的最优解也是子问题的最优解构成,下面通过几个案例来了解一下: 先来理解子序列和子串的区别 - 最长公共子序列 分析:比较连个字符串的公共子串,可以以任意一个串作为基串,从该串的第一个字符开始与第二个串比较求出最优解,循环求出最后一个字符时对应的最优解: public static int ma...原创 2019-03-21 14:06:54 · 293 阅读 · 0 评论