
c++leetcode练习
文章平均质量分 75
乘修
hello world
展开
-
Leetcode-圆圈中最后剩下的数字 约瑟夫环问题 原理推理简单易懂
问题描述Leetcode 题目描述Leetcode 题解因为官方题解以及网上其他题解比较难以理解,自己经过思考和推导,终于理清楚其数学原理,现进行分析,欢迎各位同学建议、指正推导过程举例说明:已知一个数组[1, 2, 3],每次删除第3个数字. 那么过程如下所示:删除前[1, 2, 3] --> 删除后[1, 2], 删除坐标为2,即(3 - 1) % 3;删除前[1,2] --> 删除后[2],删除坐标为0, 即(3 - 1) % 2返回数组[2]剩下数字,2,坐标2为0原创 2022-03-07 14:37:37 · 501 阅读 · 0 评论 -
[leetcode]带缓存的裴波拉且数列
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 ...原创 2020-02-18 13:58:59 · 224 阅读 · 0 评论 -
[leetcode]杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]class Solution {public: vector<vector<int>> generate(int nu...原创 2020-02-18 12:43:08 · 159 阅读 · 0 评论 -
[leetcode]两两交换链表中的节点 递归解法
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode...原创 2020-02-18 12:00:33 · 177 阅读 · 0 评论 -
[leetcode]打开转盘锁
[leetcode]打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends...原创 2019-12-15 16:35:16 · 374 阅读 · 0 评论 -
[leetcode] 根据一棵树的中序遍历与后序遍历构造二叉树。
注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree...原创 2019-08-18 12:13:39 · 529 阅读 · 0 评论 -
[leetcode]二叉树的序列化与反序列化(leetcode标准表达顺序)
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例: /** * Defini...原创 2019-08-22 09:29:16 · 435 阅读 · 0 评论 -
[leetcode]二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”本来呢,刚开始我是准备用后序遍历加上中序遍历,两个遍历组合起来,找到根节点的,其实也是可行的,代码量可能稍微大一点,但是思路很简答。最后剪头发的时候,...原创 2019-08-18 21:15:51 · 137 阅读 · 0 评论 -
[leetcode]填充每个节点的下一个右侧节点指针 II
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* n...原创 2019-08-18 18:15:10 · 243 阅读 · 0 评论