[Lc]239滑动窗口最大值 2020-07-11 剑指offer 题目 题解 看题解有三个方法。最重要的是滑动窗口法,记录一下,其他的还有暴力法(超时)和动态规划法(没看懂,有时间再看) 1. 滑动窗口+单调递减队列 Read more...
[Lc]面试题59_I滑动窗口的最大值 2020-07-11 剑指offer 题目 题解 看题解有三个方法。最重要的是滑动窗口法,记录一下,其他的还有暴力法(超时)和动态规划法(没看懂,有时间再看) 1. 滑动窗口+单调递减队列 Read more...
[Lc]面试题65不用加减乘除做加法 2020-07-11 剑指offer 题目 题解 这道题要求不能使用四则运算,一般这种题就要用位运算。对加法进行分析一下 a b 新a(非进位和) 新b(c,进位位) 0 0 0 0 0 1 1 0 1 0 1 0 Read more...
[Lc]面试题61扑克牌中的顺子 2020-07-10 剑指offer 题目 题解 两个方法。set去重+遍历和排序+遍历 这道题的核心是确定判断顺子的条件,有两个 数组中没有重复的数 最大值 - 最小值 < 5 1. set查重+遍历 Read more...
[Lc]面试题59_II队列的最大值 2020-07-10 剑指offer 题目 //Your MaxQueue object will be instantiated and called as such: MaxQueue* obj = new MaxQueue(); int param_1 = obj->max_value(); obj->push_back(value); int param_3 = obj->pop_front(); 题解 添加一个辅助的递减双端队列,用来保存对应队列中该数的最大值 push时: 当新添加的数小 Read more...
[Lc]面试题66构建乘积数组 2020-07-07 剑指offer 题目 题解 两个方法,其实本质是一个,第二个是第一个优化空间复杂度 1. 左右分开动态规划(双数组) 其实就是dp左右两边的数组,左边的从1开始到n-1 Read more...
[Lc]面试题60n个骰子的点数 2020-07-04 剑指offer 题目 题解 这道题有两个方法,递归与动态规划,动态规划会超时。而且我刚开始看递归反而看不懂,因此转为先看动态规划,借助路漫漫我不畏的题解加图解, Read more...
[Lc]面试题68_I二叉搜索树的最近公共祖先 2020-07-03 剑指offer 题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 两个方法 这道题是236的子问题,多了二叉搜索树的限制。用236的方法也 Read more...
[Lc]235二叉搜索树的最近公共祖先 2020-07-03 leetcode 题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 两个方法 这道题是236的子问题,多了二叉搜索树的限制。用236的方法也 Read more...
[Lc]236二叉树的最近公共祖先 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...