[Lc]面试题68_II二叉树的最近公共祖先 2020-07-02 剑指offer 题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 两个方法 1. 递归+后序遍历 直接用后续遍历对二叉树进行遍历,每次返回有以下 Read more...
[Lc]面试题64求1+2+…+n 2020-07-02 剑指offer 题目 题解 题目要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) 递归一般要用条 Read more...
[Lc]面试题63股票的最大利润 2020-06-30 剑指offer 题目 题解 动态规划的思想。即一次遍历,寻找两个数,一个是当前的全局最小值,一个是在当前的全局最小值后可以得到的最大差值 时间复杂度$O(n)$ 空 Read more...
[Lc]121买卖股票的最佳时机 2020-06-30 leetcode 题目 题解 动态规划的思想。即一次遍历,寻找两个数,一个是当前的全局最小值,一个是在当前的全局最小值后可以得到的最大差值 时间复杂度$O(n)$ 空 Read more...
[Lc]面试题58_II左旋转字符串 2020-06-29 剑指offer 题目 题解 三个方法,都比较简单,直接看代码吧 1. 切片拼接法 时间复杂度$O(n)$ 空间复杂度$O(n)$ class Solution {//三个方法。1.切片拼接 public: string reverseLeftWords(string s, int Read more...
[Lc]面试题62圆圈中最后剩下的数字 2020-06-27 剑指offer 题目 这道题是约瑟夫环可以用链表暴力删除,但是复杂度较高,是$O(mn)$ 1. 数学递推公式法 题解中大部分都是对这个递推公式的讲解,我的个人理解如 Read more...
[Lc]面试题58_I翻转单词顺序 2020-06-27 剑指offer 题目 题解 1. 双旋转单擦除法 题目要求空间复杂度$O(1)$,该方法符合,即先整体翻转全部字符串,再逐个单词串翻转,空格跳过,不同单词之间的空格自 Read more...
[Lc]面试题57_II和为s的连续正数序列 2020-06-26 剑指offer 题目 题解 1. 暴力法 挨个计算所有数组的和,时间复杂度太高 时间复杂度: $O(n^{2})$ 空间复杂度: $O(1)$ 2. 滑动窗口法 看注释吧,不太难,证明可以看题解 时间复杂度: $O(n)$ 空 Read more...
[Lc]面试题57_I和为s的两个数字 2020-06-25 剑指offer 题目 题解 可以用哈希表,但是需要用额外的存储空间,这道题有递增的性质,直接双指针,很简单,看代码就可以。 时间复杂度: $O(n)$ 空间复杂度: $O(1)$ class Solution { public: vector<int> Read more...
[Lc]1两数之和 2020-06-25 leetcode 题目 题解 1. 暴力法 就是挨个两两相加,找到相加为target的两个数。会超时,比较好写,这里不写了 时间复杂度$O(n^{2})$ 空间复杂度$O( Read more...