
LeetCode
文章平均质量分 73
会划水才能到达彼岸
ACM-ICPC 现役(铜牌) 目前:Codeforces Rating: 2172
展开
-
Leetcode 第 46 场双周赛 题解
Leetcode 第 46 场双周赛 题解5657. 唯一元素的和5658. 任意子数组和的绝对值的最大值(前缀和)5659. 删除字符串两端相同字符后的最短长度(双指针)5657. 唯一元素的和题意:给出一个序列,求出这个序列中,所有唯一元素的和题解:开个map或者计数数组,遍历一遍这个序列,统计一下每个数字出现的次数,把计数数组为1的i输出即可class Solution {public: int a[105]; int sumOfUnique(vector<int>原创 2021-02-07 01:18:25 · 455 阅读 · 1 评论 -
算法群寒假第一周题解
算法群寒假第一周题解剑指Offer 04 搜索二维矩阵Ⅱ(二分或者思维直接解)剑指Offer 12 单词搜索(DFS+剪枝)C++代码Java代码剑指Offer 14-Ⅰ剪绳子(DP或者数学(也可以说是贪心))C++代码 + Java代码剑指Offer 04 搜索二维矩阵Ⅱ(二分或者思维直接解)题目描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:m原创 2021-01-25 17:57:05 · 287 阅读 · 0 评论 -
Leetcode 贪心专题周 (内附C++及Java代码)
Leetcode 贪心专题周455.分发饼干C++代码Java代码455.分发饼干贪心算法:问题:二分图最大匹配涉及算法:匈牙利算法 时间复杂度是:O(n×m)O(n × m)O(n×m)题意:nnn 个小朋友 mmm 个饼干gig_igi :小朋友希望得到饼干的最小尺寸,小朋友比较傲娇,如果没达到最小尺寸就不要sis_isi :每个饼干的尺寸问最多能满足多少个小朋友的要求?虽说是贪心算法,但是也是属于纯思维能解决的题目。解决思路:应该满足更多的小朋友,所以我们应该选择 gig原创 2020-10-28 16:16:43 · 256 阅读 · 0 评论 -
Leetcode刷题 week 2
Leetcode刷题 week 2367.有效的完全平方数C++代码Java代码371.两整数之和C++代码Java代码374.猜数字大小C++代码383.赎金信C++代码387.字符串中的第一个唯一字符C++代码Java代码389.找不同C++代码Java代码392.判断子序列C++代码Java代码Leetcode 总题单:https://blog.youkuaiyun.com/m0_46272108/article/details/109269407367.有效的完全平方数本体的思想:查找1~num,那么原创 2020-10-26 23:56:31 · 362 阅读 · 0 评论 -
Leetcode 二叉树专题周
Leetcode 105.从前序与中序遍历序列构造二叉树(图文详解)本题思想:给出前序遍历和中序遍历前序遍历的顺序是: 根节点 —— 左子树 —— 右子树中序遍历的顺序是: 左子树 —— 根节点 —— 右子树这道题用递归思想(代码中会有详细的解释):通过前序遍历 得到根节点(第一个数)在中序遍历中找到 根节点此时中序遍历的根节点左边就是左子树,右边就是右子树继续递归寻找剩下的。例子:那么此时:9为左子树,20,15,7为右子树右子树还需要继续找该右子树的根节点,思路跟刚开始一原创 2020-10-25 02:30:36 · 206 阅读 · 0 评论 -
Leetcode 题单 (图文详解)内附C++ 和 Java代码
Leetcode 题单简单中等困难简单中等105.从前序与中序遍历序列构造二叉树困难原创 2020-10-25 01:58:05 · 181 阅读 · 0 评论 -
Leetcode (贪心)452. 用最少数量的箭引爆气球
452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以 yyy 坐标并不重要,因此只要知道开始和结束的 xxx 坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在 104104104 个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xendxstart,xendxstart,xend, 且满足 xstart≤x≤xendxstar原创 2020-10-16 01:15:36 · 163 阅读 · 0 评论 -
Leetcode (贪心) 406. 根据身高重建队列
根据身高重建队列假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]题解:时间复杂度 O(n2)O(n^2)O(n2)先按身高从大到小排序.原创 2020-10-13 12:52:24 · 191 阅读 · 0 评论 -
Leetcode刷题 week 1
回文链表请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解法1:动态数组 + 双指针思想 时间复杂度O(n),空间复杂度O(n) class Solution { public: bool i.原创 2020-10-04 13:57:48 · 176 阅读 · 0 评论 -
数据结构 —— 并查集(笔记及裸题)
并查集代码短但是特别精巧。将两个集合合并询问两个元素是否在一个集合当中(并查集的时间复杂度近乎O(1) )基本原理:每一个集合用一颗树来表示。树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点问题1:如何判断树根?如果是树根的话 → if(p[x] == x) ,除了根节点之外p[x] ≠ x问题2:如何求x的集合编号?while(p[x] != x) x = p[x];只要x不是树根,就一直往上走。其实就是解决第二点,询问两个元素是否在一个集合当中,分别原创 2020-09-29 11:05:04 · 295 阅读 · 0 评论 -
Leetcode (198)打家劫舍Ⅰ,(213)打家劫舍Ⅱ,(337)打家劫舍Ⅲ
打家劫舍Ⅰ题意:线性房屋,不能偷盗相邻的两个屋子。要求偷到的总金额最高题解: 设置一个滚动数组,lll 为nums[0],rrr 为nums[0] , nums[1] 的最大值,maxx = max(l + nums[i], r) 这个就很灵性了。举个例子,如果是[1,2,3]那么在这个过程就是:lll = nums[0] = 1rrr = max(nums[0], nums[1]) = max(1, 2) = 2maxx = max( lll + nums[i], rrr) = ma原创 2020-09-20 07:47:35 · 166 阅读 · 0 评论 -
LeetCode 100 101 108 110 111 —— 二叉树 算法周训(一)
100.相同的树思路:递归遍历二叉树根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历满足相同的树的条件为:左节点、右节点、左子树、右子树完全相同即可终止递归的且为true的情况:如果p和q都为 nullptrnullptrnullptr,则二叉树相同,返回true如果p和q都不为 nullptrnullptrnullptr且值是相等的,如果 leftleftleft和 rightrightright同时相同的话,则二叉树相同,原创 2020-08-02 18:00:47 · 392 阅读 · 0 评论