摘要:
Q:给定一个字符串S和一个字符串T,计算S中的T的不同子序列的个数。 字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,"ACE"is a subsequence of"ABCDE"但是"AEC"不是) 例如: S ="rabbbit", T ="r 阅读全文
摘要:
Q: 给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字, 例如,给出的三角形如下: [↵ [2],↵ [3,4],↵ [6,5,7],↵ [4,1,8,3]↵] 最小的从顶部到底部的路径和是2 + 3 + 5 + 1 = 11。 注意: 如果你能只用O(N)的 阅读全文
摘要:
Q:给定一个单链表,其中的元素按升序排序,请将它转化成平衡二叉搜索树(BST) A: Q:给出一个升序排序的数组,将其转化为平衡二叉搜索树(BST). A: 阅读全文
摘要:
Q:给定一个二叉树 struct TreeLinkNode {↵ TreeLinkNode *left;↵ TreeLinkNode *right;↵ TreeLinkNode *next;↵ } 填充所有节点的next指针,指向它右兄弟节点。如果没有右兄弟节点,则应该将next指针设置为NULL。 阅读全文
摘要:
Q:给出一个值numRows,生成杨辉三角的前numRows行 例如,给出 numRows = 5, 返回 [↵ [1],↵ [1,1],↵ [1,2,1],↵ [1,3,3,1],↵ [1,4,6,4,1]↵] A: public static ArrayList<ArrayList<Intege 阅读全文
摘要:
股票买卖分析:(引用自《labuladong的算法》) 这个解释应该很清楚了,如果 buy,就要从利润中减去 prices[i],如果 sell,就要给利润增加 prices[i]。今天的最⼤利润就是这两种可能选择中较⼤的那个。⽽且注意 k 的限制,我们在选择 buy 的时候,把 k 减⼩了 1,很 阅读全文
摘要:
Q:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。 这个路径的开始节点和结束节点可以是二叉树中的任意节点 例如: 给出以下的二叉树, 1↵ / ↵ 2 3 返回的结果为6 A: int maxValue; public int maxPathSum(TreeNode root) { 阅读全文
摘要:
Q:判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写 例如:"A man, a plan, a canal: Panama"是回文 "race a car"不是回文 注意: 你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。 针对这个问题,我们定义空字符 阅读全文
摘要:
Q:给定两个单词(初始单词和目标单词)和一个单词字典,请找出所有的从初始单词到目标单词的最短转换序列的长度: + 每一次转换只能改变一个单词 + 每一个中间词都必须存在单词字典当中 例如: 给定的初始单词start="hit", 目标单词end ="cog"。 单词字典dict =["hot","d 阅读全文
摘要:
Q:给定一个无序的整数类型数组,求最长的连续元素序列的长度。 例如: 给出的数组为[100, 4, 200, 1, 3, 2], 最长的连续元素序列为[1, 2, 3, 4]. 返回这个序列的长度:4 你需要给出时间复杂度在O(n)之内的算法 A: 用hash表来解决这个问题,先初始化一个hash表 阅读全文