
Leetcode
刷题笔记
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode226 翻转二叉树
递归调用 代码: class Solution { public: TreeNode* invertTree(TreeNode* root) { if(root==NULL) return NULL; invertTree(root->left); invertTree(root->right); TreeNode* p=root->left; root->left=root->right;原创 2022-03-03 16:04:25 · 304 阅读 · 0 评论 -
Leetcode160 相交链表
文章目录双指针哈希集合关于unordered_set 双指针 遍历单链表A和单链表B,得到其长度之差gap。 此时指针n1和n2都指向了两条链表的最后一个节点,如果指向的不是同一个,则没有相交节点,返回NULL。 否则,将长链表的指针移动gap距离,此时longlist和shortlist到第一个相交节点的距离是相等的。依次往后移找到即可。 代码: class Solution { public: ListNode *getIntersectionNode(ListNode *headA, List原创 2022-02-27 10:52:26 · 693 阅读 · 0 评论 -
Leetcode121 买卖股票的最 佳时机
文章目录暴力解法一次遍历 暴力解法 class Solution { public: int maxProfit(vector<int>& prices) { int ans = 0; for (int i=0; i<prices.size(); ++i) for (int j=i+1; j<prices.size(); ++j) ans = max(ans, prices[j] - prices[i]);原创 2022-02-26 16:59:27 · 198 阅读 · 0 评论 -
Leetcode155 最小栈
代码: class MinStack { public: stack<int> s1; stack<int> s2; MinStack() { s2.push(INT_MAX); } void push(int val) { s1.push(val); s2.push(min(val,s2.top())); } void pop() { s1.原创 2022-02-26 15:16:21 · 201 阅读 · 0 评论 -
Leetcode练习 快慢指针
文章目录141.环形链表142.环形链表2 141.环形链表 思路: 当head为空时,返回false; 设置两个指针,一个快指针,一个慢指针; 如果快指快指针先指到NULL,则链表中没有环; 如果链表中有环,两个指针最后一定会相遇。 fast每次走三步,slow每次走一步可以吗? 不行,进入环之后,fast每次走两步,slow每次走一步,每走一步,fast和slow的距离减少1,保证了fast和slow不会错过。如果fast每次走三步,slow每次走一步,一些情况下,fast会错过slow。所以.原创 2022-02-24 21:27:38 · 391 阅读 · 0 评论 -
Leetcode136 只出现一次的数字
文章目录异或运算代码实现 异或运算 1)任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。 2)任何数和其自身做异或运算,结果是 0,即a⊕a=0。 3)异或运算满足交换律和结合律,即a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b 代码实现 class Solution { public: int singleNumber(vector<int>& nums) { int n=0; for(int i=0;i<nums.原创 2022-02-24 19:46:52 · 156 阅读 · 0 评论 -
Leetcode101 对称二叉树
文章目录递归算法迭代算法 递归算法 判断一棵二叉树是否为对称二叉树,首先判断根节点是否存在。 根节点存在则比较左右两棵子树是否子树。 左子树和右子树根节点若存在应当相等,再比较左子树的左孩子和右子树的右孩子,左子树的右孩子和右子树的左孩子。 代码实现: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *原创 2022-02-19 15:59:54 · 353 阅读 · 0 评论 -
Leetcode94 二叉树的中序遍历
文章目录二叉树的中序遍历递归解法迭代解法 二叉树的中序遍历 中序遍历:先访问左子树,然后访问根节点,再访问右子树。 递归解法 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {}原创 2022-02-18 21:57:19 · 84 阅读 · 0 评论 -
Leetcode70 爬楼梯
代码: class Solution { public: int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; vector <int> result(n); result[0]=1; result[1]=2; for(int i=2;i<result.size();i++){ result[原创 2022-02-18 20:51:37 · 179 阅读 · 0 评论 -
Leetcode20 有效的括号
有效的括号 栈的定义 栈是只允许在一端进行插入或者删除的线性表。 栈顶是线性表允许插入或删除的一端,栈底是不允许进行插入和删除的一端。 栈的操作特性可以概括为后进先出。 STL中stack的用法 empty();// 堆栈为空则返回真 pop(); // 移除栈顶元素 push(); //在栈顶增加元素 size(); // 返回栈中元素数目 top(); //返回栈顶元素 解题思路 利用栈后进先出的特性 若碰到’(’ ‘[’ '{'时把对应的括号压入栈中 若是可匹配的括号,将栈顶元素移除;若不是可匹配的原创 2022-01-31 16:31:33 · 747 阅读 · 0 评论