LeetCode152:乘积最大子数组

题目描述: 方法1:动态规划,dp_max与dp_min 分别表示遍历 i 时,以 i 结尾的子数组最大乘积和最小乘积 class Solution { public: int maxProduct(vector<int>& nums) { int dp_max = nums


LeetCode48:旋转图像

题目描述: 方法1:用一个辅助矩阵来存旋转后的矩阵,然后把辅助矩阵赋值给原矩阵(矩阵第一列是旋转过的第一行,第二列是第二行) class Solution { public: void rotate(vector<vector<int>>& matrix) { int n =


LeetCode75:颜色分类

题目描述: 方法1:单指针,两次循环,第一次把0移到前面,第二次把1移到前面 class Solution { public: void sortColors(vector<int>& nums) { int n = nums.size(); int pos


LeetCode15:三数之和

题目描述: 重点:与两数之和不同,两数之和只用返回一个下标组合,三数之和是返回所有元素组合,且不重复 方法1:使用双指针,对数组排序后,i 从0遍历到 n-3,左指针是 i+1,右指针是 n-1,然后记得去重 如果nums[i]大于0,返回结果 如果nums[i] + nums[left]大于0,遍


LeetCode455:分发饼干

题目描述: 方法1:贪心算法,将胃口和饼干从小到大排序,然后从最大的胃口值开始,不断迭代用最大的饼干去满足 class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { s


LeetCode107:二叉树的层次遍历Ⅱ

题目描述: 方法1:普通的层次遍历,然后反转下结果 class Solution { public: void order(vector<vector<int>>& result, TreeNode* root, int length){ if(!root) return;


LeetCode102:二叉树层次遍历

题目描述: 方法1:非递归,使用队列辅助 class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> result; queue<T


LeetCode125:验证回文串

题目描述: 方法1:先去掉所有非字母数字的字符,然后全部变为小写或者大写,然后反转后比一遍