LeetCode漫漫刷题路
题目刷起来
_End丶断弦
长风破浪会有时,直挂云帆济沧海!
展开
-
leetcode18. 四数之和
还是用双指针,再三数之和的基础上再加一个循环。,要求不重复,首先还是要先对数组进行排序,遇到相同的。,且a原创 2022-08-26 09:45:41 · 997 阅读 · 2 评论 -
leetcode19. 删除链表的倒数第 N 个结点
这道题和链表中的倒数第K个结点解法差不多,用快慢指针。因为会涉及到操作头结点,所以我们用虚拟头结点,这样会方便很多。原创 2022-08-25 09:40:17 · 877 阅读 · 0 评论 -
leetcode.16 --- 最接近的三数之和
和15题的思路基本是一样的,这道题目不用去重。原创 2022-08-24 15:46:16 · 969 阅读 · 0 评论 -
leetcode.15 --- 三数之和
看了英雄哥的代码加的细节:可以先将答案数组先开好空间,如果数组个数小于3或者第一个数大于0,最后一个数小于0直接返回,如果第1个数和最后一个数都是0,则返回3个0.首先想到的方法就是暴力解法,直接3层循环,肯定是不行的,原创 2022-08-23 17:00:59 · 886 阅读 · 0 评论 -
leetcode.14 --- 最长公共前缀
代码如下:原创 2022-06-25 14:42:46 · 1038 阅读 · 7 评论 -
leetcode.13 --- 罗马数字转整数
代码如下:原创 2022-06-24 14:54:23 · 893 阅读 · 1 评论 -
leetcode.12 --- 整数转罗马数字
代码如下:原创 2022-06-24 11:57:40 · 889 阅读 · 1 评论 -
leetcode.11 --- 盛最多水的容器
代码如下:代码如下:为什么双指针可以解决,可以看题解给出的证明即可。原创 2022-06-22 08:53:39 · 826 阅读 · 0 评论 -
leetcode.40 --- 组合总和(||)
代码如下:原创 2022-06-20 20:27:06 · 846 阅读 · 0 评论 -
leetcode.1 --- 两数之和
代码如下:使用哈希表代码如下:原创 2022-06-12 22:14:26 · 840 阅读 · 0 评论 -
leetcode.39 --- 组合总和
代码如下:原创 2022-06-11 19:42:34 · 837 阅读 · 1 评论 -
leetcode.36 --- 有效的数独
代码如下:原创 2022-06-09 07:35:13 · 820 阅读 · 0 评论 -
leetcode.35---搜索插入位置
代码如下:原创 2022-06-08 07:03:06 · 832 阅读 · 2 评论 -
leetcode.34. 在排序数组中查找元素的第一个和最后一个位置
二分查找原创 2022-06-07 08:17:48 · 829 阅读 · 2 评论 -
leetcode.33 --- 搜索旋转排序数组
1.暴力查找2.二分查找原创 2022-06-05 20:40:55 · 855 阅读 · 1 评论 -
LeetCode.20-----有效的括号
有效的括号栈的应用原创 2022-06-04 09:56:49 · 118 阅读 · 1 评论 -
leetcode.9 --- 回文数
回文数解法一解法二原创 2022-06-02 18:19:00 · 93 阅读 · 2 评论 -
leetcode.8 --字符串转换整数 (atoi)
字符串转整数原创 2022-06-01 10:23:06 · 111 阅读 · 3 评论 -
leetcode.7 --整数反转
整数反转题目链接:https://leetcode.cn/problems/reverse-integer/题解:代码如下:class Solution {public: int reverse(int x) { int r = 0; while(x) { if(r > 0 && r > (INT_MAX - x % 10) / 10) return 0;原创 2022-05-31 18:31:27 · 90 阅读 · 2 评论 -
leetcode2.两数相加
两数相加题目链接题解:跟前面写过的高精度加法一样的,这里可以new一个虚拟头结点,就不用特判当链表为空的情况了。设t为进位,l1的每个结点+l2的每个结点+进位t,每个结点需要添加的值是(l1+l2+t)%10,t /= 10,当2个链表走到完且进位也处理完循环结束。代码如下:class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* dumm原创 2022-05-30 10:00:28 · 119 阅读 · 2 评论 -
力扣392---判断子序列
判断子序列双指针的应用双指针的应用题目链接:点击直达题解:双指针解决动图演示:代码如下:class Solution {public: bool isSubsequence(string s, string t) { int m = s.length(), n = t.length(); int i = 0,j = 0; while(i < m && j <n) {原创 2022-05-25 12:26:47 · 126 阅读 · 4 评论 -
LeetCode-剑指offer栈的题目
栈的题1.剑指offer-09 用2个栈实现队列2.剑指offer-30 包含min函数的栈3.剑指offer-31 栈的压入、弹出序列1.剑指offer-09 用2个栈实现队列题目链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/栈是先进后出,队列是先进先出的特点,画图走起来:这道题还是比较简单的。动图演示:代码如下:class CQueue {public: CQue原创 2022-02-21 18:12:11 · 383 阅读 · 7 评论 -
LeetCode--剑指offer.36-二叉搜索树和双向链表
二叉搜索树和双向链表题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/题目:因为是搜索树,中序遍历出来是升序的。分析:如下图注意的细节递归时我们只需要1个prev,就不能传指针了,需要传引用。因为递归到每个栈,每个栈中都有prev。右子树的操作跟左子树是一样的。代码如下:class Solution { public: Node* treeToD原创 2022-02-19 22:58:13 · 210 阅读 · 4 评论 -
LeetCode--236 二叉树的最近公共祖先
二叉树的最近公共祖先思路一思路二思路一题目如果面试官问二叉树的最近公共祖先,我们可以问面试官,这个二叉树是不是搜索树,如果是搜索树如下图:搜索树的特征是:左孩子比父亲小,右孩子比父亲大。那我们可以分析:2,3的最近公共祖先是3,0,4的最近公共祖先是3, 6和9的最近祖先是7。那么可以得出:一个子结点比根小,一个子结点比根大,这个根就是最近公共祖先,如果2个结点中有1个是根节点那么这个结点就是最近公共祖先普通二叉树由上面的思路得出:1.2个结点都在左子树中,递归到左树中找2.原创 2022-02-15 12:09:23 · 889 阅读 · 17 评论 -
LeetCode--102.二叉树的层序遍历
二叉树的层序遍历102二叉树的层序遍历107二叉树的层序遍历2102二叉树的层序遍历题目链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/之前的二叉树的层序遍历利用队列进1个出1个,但是这里是把每一层放在一起。思路还是利用队列来解决。分析如下图:代码如下:class Solution {public: vector<vector<int>> levelOrder(T原创 2022-02-16 11:28:24 · 1057 阅读 · 9 评论 -
Leetcode-二叉树的前,中,后序的非递实现
二叉树的前,中,后序的非递实现前序的非递归中序的非递归后序的非递归前序的非递归借助力扣的题来实现前序遍历的非递归。前序的递归是先访问根节点,左子树,右子树。二叉树的前序遍历链接虽然递归实现较简单,但是非递归的实现我们也要掌握。非递归实现要借助栈来显示,但是思想还是递归的思想。实现思路:1.先访问左路节点2.访问左路结点的同时入栈3.子问题的方式再去访问右子树先画一手图:动图演示(借用力扣官方的动图):在附上代码:/** * Definition for a binary原创 2022-01-06 21:10:52 · 882 阅读 · 24 评论