LeetCode
文章平均质量分 94
风灵无畏YY
本蒟蒻为在校大学生,不定期更新一些有关计算机相关知识的学习记录,有不恰当的地方还请指出。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode腾讯精选练习task01
目录两数相加题目描述解题思路程序代码c++python心得寻找两个正序数组的中位数最长回文子串两数相加题目链接 2.两数相加ps:在上次的组队学习中做了这个题目,这次就当是回顾一下指针的基础用法吧,因未系统学过指针的用法,就当是再学习学习。更新了部分注释以及解题思路。题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0原创 2021-01-10 10:53:57 · 380 阅读 · 0 评论 -
datawhale组队训练——LeetCode分类练习——查找2
题目链接:1. 两数之和15. 三数之和16. 最接近的三数之和18. 四数之和49. 字母异位词分组149. 直线上最多的点数219. 存在重复元素 II220. 存在重复元素 III447. 回旋镖的数量454. 四数相加 II目录1.两数之和15. 三数之和16. 最接近的三数之和18. 四数之和49. 字母异位词分组149. 直线上最多的点数219. 存在重复元素 II220. 存在重复元素 III447. 回旋镖的数量454. 四数相加 II1.两数之和题目描述给定一个原创 2020-08-27 18:18:29 · 324 阅读 · 0 评论 -
datawhale组队训练——LeetCode分类练习——查找1
题目链接:第一题:目录35. 搜索插入位置202. 快乐数205. 同构字符串242. 有效的字母异位词290. 单词规律349. 两个数组的交集350. 两个数组的交集 II410. 分割数组的最大值451. 根据字符出现频率排序540. 有序数组中的单一元素35. 搜索插入位置题目描述思路分析分析:在有序数组中查找插入元素的位置,显然可以使用二分查找。这篇题解提供的思路是「排除法」,思路是:在循环的过程中,不断排除不需要的解,最后剩下的那个元素的位置就一定是插入元素的位置。具体来说:首先,原创 2020-08-17 18:16:36 · 429 阅读 · 0 评论 -
datawhale组队训练——LeetCode分类练习——动态规划
题目链接:第一题:目录5. 最长回文子串题目描述思路分析程序代码72. 编辑距离题目描述思路分析程序代码198. 打家劫舍题目描述思路分析程序代码213. 打家劫舍II题目描述思路分析程序代码516. 最长回文子序列题目描述思路分析程序代码674. 最长连续递增序列题目描述思路分析程序代码5. 最长回文子串题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示原创 2020-08-17 17:47:55 · 347 阅读 · 0 评论 -
datawhale组队训练——LeetCode分类练习——分治
题目链接:第一题:50. Pow(x, n)第二题:第三题:50. Pow(x, n)题目描述实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整原创 2020-08-14 18:22:05 · 322 阅读 · 0 评论 -
LeetCode 115. 不同的子序列
题目链接 LeetCode 115. 不同的子序列题目描述给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:输入:S = “rabbbit”, T = “rabbit”输出:3解释:如下图所示, 有 3 种可以从 S 中得到 “ra原创 2020-05-18 18:42:27 · 874 阅读 · 0 评论 -
基础算法 LeetCode 刻意练习总结
今年这个三月,虽然是在疫情中度过,但还是有一些收获的。在这一个月中参加了华电计算机系 马老师 组织的基础算法(LeetCode)刻意练习活动,每天按时写题目,写博客,坚持打卡,一晃一个月就过去了,感觉收获还是很大的。在这一个月的刻意练习中,复习了一部分在高中学习的竞赛知识,练习了写c++代码,熟练了很多。本想着每天写程序的时候还要写一份java的代码,但是时间真的有限,就只能先练自己擅长的c++...原创 2020-03-30 21:32:39 · 340 阅读 · 0 评论 -
LeetCode 44. 通配符匹配
题目链接 LeetCode 44. 通配符匹配题目描述给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。解题思...原创 2020-03-30 18:13:05 · 147 阅读 · 0 评论 -
LeetCode 134. 加油站
题目链接 LeetCode 134. 加油站题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。...原创 2020-03-29 18:56:01 · 218 阅读 · 0 评论 -
LeetCode 55. 跳跃游戏
题目链接 LeetCode 55. 跳跃游戏题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,...原创 2020-03-28 20:50:36 · 130 阅读 · 0 评论 -
LeetCode 455. 分发饼干
题目链接 LeetCode 455. 分发饼干题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并...原创 2020-03-25 16:03:34 · 156 阅读 · 0 评论 -
LeetCode 392. 判断子序列
题目链接 LeetCode 392. 判断子序列题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde...原创 2020-03-25 15:35:57 · 124 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
题目链接 LeetCode 122. 买卖股票的最佳时机 II题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。题目分析这个题目跟之前的那个买卖股票的最佳时机||| 不一样,这个是可以无限次买入卖出,只是不能...原创 2020-03-25 15:13:30 · 164 阅读 · 0 评论 -
LeetCode 99. 恢复二叉搜索树
题目链接 LeetCode 99. 恢复二叉搜索树题目描述二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。解题思路这个题我们可以用到二叉排序树的特殊性质,因为二叉排序树的中序遍历是有序性的,而且本题只有两个位置的数字被交换了,所以我们在中序遍历的时候存一个当前节点的前驱节点,如果不满足前驱节点的数值小于当前节点,就说明被调换了。这里不用担心为什么只比较这两个节...原创 2020-03-24 16:49:41 · 178 阅读 · 0 评论 -
LeetCode 95. 不同的二叉搜索树 II
题目链接 LeetCode 95. 不同的二叉搜索树 II题目描述给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。解题思路选取一个节点i作为根节点,1——i-1为左子树的节点,i+1——n为右子树的节点,整个过程用递归完成。程序代码c++/** * Definition for a binary tree node. * struct TreeNode { ...原创 2020-03-23 19:02:17 · 228 阅读 · 0 评论 -
LeetCode 94. 二叉树的中序遍历
题目链接 LeetCode 94. 二叉树的中序遍历题目描述给定一个二叉树,返回它的中序 遍历。解题思路递归版递归版的很容易想到,先遍历左边子树,在这里加一句赋值语句,把当前这个值放到动态数组里面,再遍历右边子树,遇到空节点就返回。非递归版程序代码c++(递归版)/** * Definition for a binary tree node. * struct TreeNod...原创 2020-03-22 13:09:09 · 175 阅读 · 1 评论 -
LeetCode 104.二叉树的最大深度
题目链接 leetcode 二叉树的最大深度解题思路 递归进行下去就好了,每次返回时加一。/**Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), ...原创 2020-03-21 20:31:13 · 151 阅读 · 0 评论 -
LeetCode 101. 对称二叉树
题目链接 LeetCode 101. 对称二叉树题目描述给定一个二叉树,检查它是否是镜像对称的。程序代码c++版本一(自己的代码)有一组数据过不去(我想应该这一类型的都过不去)[1,2,2,2,null,2]我的输出是true答案是输出false最终测试点有195个,通过了192个数据。然后一开始是想着把空格的地方用-1填充一下,因为我是按照中序遍历并且把数据存到动态数组中,...原创 2020-03-19 16:31:47 · 163 阅读 · 0 评论 -
LeetCode 100. 相同的树
题目链接 LeetCode 100. 相同的树题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。解题思路这道题很简单,感觉LeetCode官方已经帮你把大部分的工作做好了,只要自己写个递归遍历一下就好了。程序代码c++/** * Definition for a binary tree node. * st...原创 2020-03-19 15:08:57 · 155 阅读 · 0 评论 -
LeetCode 10. 正则表达式匹配
题目链接 10. 正则表达式匹配程序代码c++int sr,pr;class Solution {public: bool isMatch( string &s, string &p) { sr=s.size();pr=p.size(); return doMatch(s, 0, p, 0); } bool doM...原创 2020-03-18 16:57:52 · 261 阅读 · 0 评论 -
LeetCode 5. 最长回文子串
题目链接 LeetCode 5. 最长回文子串题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路从中间选取一个点,向两边扩展,每扩展一次就检查一下当前这个是不是回文串,最后留下长度最大的。...原创 2020-03-17 21:12:12 · 154 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
题目链接 LeetCode 3. 无重复字符的最长子串解题思路用两个指针分别移动,并用一个bool数组记录自字符是否出现过。/*class Solution {public: int lengthOfLongestSubstring(string s) { int mm[300]; int l=0,maxx; memset(mm,0,...原创 2020-03-16 18:24:59 · 136 阅读 · 0 评论 -
LeetCode 20. 有效的括号
题目链接 20. 有效的括号题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。程序代码c++别人的程序class Solution {public: bool isValid(string s) { ...原创 2020-03-14 16:22:23 · 145 阅读 · 0 评论 -
LeetCode 14. 最长公共前缀
题目链接 14. 最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题思路一道经典的...原创 2020-03-14 10:42:19 · 153 阅读 · 0 评论 -
LeetCode 13. 罗马数字转整数
题目链接 13. 罗马数字转整数解题思路算是一种模拟吧,分很多情况,可以用case语句,或者用map先把对应的罗马数字存下来。程序代码class Solution {public: int romanToInt(string s) { map< string ,int> m; m["I"]=1;m["V"]=5;m["X"]=10;m[...原创 2020-03-13 17:30:40 · 148 阅读 · 0 评论 -
LeetCode 23. 合并K个排序链表
题目链接 23. 合并K个排序链表题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6解题思路第一种方法把所有的数值都丢入一个链表中,排序后返回值。复杂度O(nklo...原创 2020-03-12 20:20:56 · 130 阅读 · 0 评论 -
删除链表的倒数第N个节点
题目链接 删除链表的倒数第N个节点题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解题思路第一种就是我下面给出的这种,先过一遍确定有多少个元素,然后再循环一遍,到倒数第n+1的时候把倒数第n...原创 2020-03-11 16:21:41 · 143 阅读 · 0 评论 -
LeetCode 两数相加
题目链接 两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ...原创 2020-03-09 21:29:18 · 183 阅读 · 0 评论 -
LeetCode 环形链表
题目链接 141. 环形链表题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例1输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2输入:head = [1,2], po...原创 2020-03-08 19:21:34 · 148 阅读 · 0 评论 -
LeetCode 删除排序链表中的重复元素
题目链接 删除排序链表中的重复元素题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。解题思路就是一个链表的基本操作,目前还不太会,等学习完了再来一个链表基本操作的总结。(还有一个问题就是,不动为什么要再弄一个ptr来执行删除操作,最后在返回head,直接用head的话好像不行)程序代码c++/** * Definition for singly-linked l...原创 2020-03-07 22:08:09 · 142 阅读 · 0 评论 -
LeetCode 合并两个有序链表
题目链接 合并两个有序链表题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路这题用链表做即可,思路不难,用指针去比较l1链表和l2链表。小的放前面,大的放后面。程序代码c++此篇代码是参考...原创 2020-03-07 15:32:28 · 133 阅读 · 0 评论 -
LeetCode 买卖股票的最佳时期|||
题目链接题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获...原创 2020-03-06 22:30:50 · 190 阅读 · 0 评论 -
LeetCode 最接近的三数之和
题目链接 最接近的三数之和题目描述给一组数据和一个target,在这组数中找到三个数,使之三数之和最接近target,并输出这三个数的和。解题思路这个题和 三数之和 的思路一样,也是利用双指针去做,只需对其中的代码做点改变,不同的是这里不用输出是哪三个数和所有的方案。程序代码c++class Solution {public: int threeSumClosest(vec...原创 2020-03-05 16:19:05 · 143 阅读 · 0 评论 -
LeetCode 三数之和
题目链接 三数之和题目描述找出三个数,要求这三个数的的和为0,并且输出所有的答案。解题思路利用两数之和的思想,我们先将程序代码class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<...原创 2020-03-04 16:53:26 · 209 阅读 · 0 评论 -
LeetCode 删除元素
题目链接 删除元素题目描述给定一组数nums[]和一个值val,将数组中与val相等的元素删掉,然后将剩下的数输出。解题思路利用上一篇(删除排序数组中的重复元素)的双指针想法,我们来做这道题就可以做到不需要开额外的数组,只需要一个数组就好了。程序代码c++class Solution {public: int removeElement(vector<int>&...原创 2020-03-02 17:37:16 · 235 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项
题目链接 删除数组中的重复项题目描述原创 2020-03-01 19:12:46 · 142 阅读 · 0 评论 -
Leetcode 两数之和
题目链接 两数之和题目描述(当时直接复制粘贴的时候,编辑界面就卡住,需要看题目的请打卡链接)题目大意:给定一个数组和一个target,在这个数组中找到两个数的和等于这个target,并返回他们在数组中的下标。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题...原创 2020-03-01 11:16:04 · 264 阅读 · 0 评论
分享