![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
LeetCode的刷题指南
Marx_W
这个作者很懒,什么都没留下…
展开
-
LeetCode(7)——二叉树——前、中、后序以及层序遍历二叉树
二叉树的前序、中序、后续遍历,用递归方法很好写,代码很精简,但是之前也学习过。递归方法实际上都是依托 栈来实现的,所以二叉树的前、中、后序遍历也均可以使用 栈来实现。 以下,分别给出递归 以及 使用迭代(栈)实现二叉树 前中后序遍历的代码。因为递归方法都比较简单,就不过多赘述,主要是迭代法的实现,需要一点技巧(尤其是 中序遍历)。144. 二叉树的前序遍历前序遍历比较简单一点,很容易想到。/** * Definition for a binary tree node. * struct TreeN原创 2021-06-03 19:14:23 · 320 阅读 · 0 评论 -
LeetCode(2)——链表——删除倒数第n个节点
删除链表的倒数第 N 个结点题目大意:如题意,删除倒数第n个节点,并返回头指针。思路:典型的双指针题。同样,可能会删除头指针,所以为了同一操作,虚拟头节点是更好的选择^ - ^。题解:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * Li.原创 2021-05-24 23:23:36 · 241 阅读 · 0 评论 -
LeetCode(2)——链表——反转链表
反转链表题目大意:如题,反转链表思路:不开辟新空间,原地反转链表。题解:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode.原创 2021-05-24 23:19:50 · 163 阅读 · 0 评论 -
LeetCode(2)——链表——移除链表元素
移除链表元素题目大意:给定一个链表和一个target,将链表总节点值等于target的节点删除。思路:因为头节点可能被删除,所以为了让操作统一,我们加一个虚拟头节点。题解:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode.原创 2021-05-24 23:16:29 · 94 阅读 · 0 评论 -
LeetCode(1)——数组——螺旋矩阵
螺旋矩阵 II题目大意:n*n的矩阵,按从外向内的螺旋顺序往里面填充数字。思路:找好规律,不要弄乱。题解:class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n , vector<int> (n)); int startx = 0, starty = 0; .原创 2021-05-20 18:27:43 · 186 阅读 · 0 评论 -
LeetCode(1)——数组——滑动窗口
209. 长度最小的子数组题目大意:给定一个数组以及一个target,找到其中长度最小,并且数组和大于等于target的子数组。思路:暴力的解法很容易,但是用滑动数组时间复杂可以直接降为 O(n)。题解:class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int low = 0, high = 0; int length = nums.原创 2021-05-19 11:12:24 · 110 阅读 · 0 评论 -
Leetcode(1)——数组——移除元素
移除元素题目大意:给一个数组,以及一个val,在保证空间复杂度为O(1)的基础上移除值为val的元素,并返回新数组的长度。思路:因为要保证空间复杂度为O(1),所以不能新建数组,所以利用双指针,一个指向头,一个指向尾,头指针用来判断当前指向的值是否等于val,尾指针指向的位置用来存放接收的val值(实际不用接收,只需要把尾指针指向的元素赋给 值为val的头指针位置即可。题解:class Solution {public: int removeElement(vector<in.原创 2021-05-18 23:49:23 · 135 阅读 · 0 评论 -
LeetCode(1)——数组——二分法
二分查找题目大意: 给定一个升序数组,以及一个target。查找target是否在数组中,若在,返回对应下标值。否则返回-1。思路:应该是最经典的二分查找题目了,写代码的时候主要需要注意的问题就是一些边界条件,比如说 while(low <= high) 还是 while (low < high), 这里主要取决去,每次进行查找的区间是开区间,开始闭区间。例如,*while(low <= high)*就是对应的闭区间。个人观点:选择自己熟悉的,每次做类似的题都用同样的边界条件。.原创 2021-05-18 22:36:35 · 103 阅读 · 0 评论