
leetcode刷题
为找工作铺垫
黑发要知勤学早
懒得连简历都不写
展开
-
LeetCode 223 矩形的面积题解
给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。示例 1:输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2输出:45示例 2:输入:ax1原创 2021-09-30 15:19:38 · 190 阅读 · 0 评论 -
计算器表达式的算法流程
题目:给你一串运算字符串,只包含±*/,要求能算出结果思路:定义一些规则就能够计算,首先定义一个计算栈,然后定义符号的优先级,±符号为1, */符号为2。规则:1.当遇到 ‘(’ 的时候,直接压入栈中;2.当遇上数字,直接压入栈中;3.当碰上 ‘) ’ 的时候,一直计算到弹出 ’(’ 为止;4.碰上的是计算符号的时候,如果当前的符号的优先级小于等于栈顶的符号优先级,直接计算栈顶后将当前运算符压入栈中;否则直接压入栈中。代码如下:class Solution {public: voi原创 2021-09-10 16:34:24 · 419 阅读 · 0 评论 -
LeetCode11 盛水最多的容器
算法1 算法复杂度O(n), 空间复杂度O(1)思路:只要左右两边的墙尽量大面积就会尽量大。左右指针的移动是朝着有面积变大趋势的方向去运动的。比如:当height[left] < height[right]的时候,由于左边的墙高度低,只有右移才有可能使得面积更大。class Solution {public: int maxArea(vector<int>& height) { int n = height.size(); int l原创 2021-05-29 01:27:02 · 85 阅读 · 0 评论 -
LeetCode 75颜色分类
这个题目非常有跳跃性。思路:维护一个3段区间,使得0~j - 1都是0, j到i - 1都是1,k + 1 ~ n - 1都是2.class Solution {public: void sortColors(vector<int>& nums) { for (int i = 0, j = 0, k = nums.size() - 1; i <= k;) { if(nums[i] == 0) swap(nums[i ++],原创 2021-03-06 22:26:17 · 124 阅读 · 0 评论 -
leetcode 124
二叉树中最大路径和树的枚举中,一般枚举树的最高点, 即最低公共祖先(LCA).给定一个树,要求最大路径和,可以分成节点的值 + 左子树的最大值 + 右子树的最大值。这个最大值是局部的最大值。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), lef原创 2021-02-11 14:52:27 · 139 阅读 · 0 评论