
LeetCode
文章平均质量分 63
KylinQAQ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[LeetCode] 384.Shuffle an Array
题目:打乱数组 重点是打乱数组这一块。按序给数组每个位置随机选元素,第一个在所有l个元素中等概率选,选到i1;第二个在除去i1的其他l-1个元素中等概率选,选到i2;第i个在除去已选的i-1个元素中等概率选,概率为1/(l-i-1)。 如何安排每一个元素,最开始还在想用set记录序列索引什么的,后来明白,对于第i个元素来说,前i个已经选好,从剩余元素中等概率选,这样最终概率是一样的,就是不放回的拿...原创 2018-10-11 17:08:53 · 290 阅读 · 0 评论 -
[LeetCode] 236. 二叉树的最近公共祖先(LCA)
LCA也忘了… 人生真是艰难qwq。 参考博客: 二叉树最近公共祖先详解(LCA问题详解 题目介绍 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1...原创 2018-12-23 15:14:02 · 570 阅读 · 0 评论 -
[LeetCode] 合并K个元素的有序链表、链表排序、复制带随机指针的链表
刷了leetcode 高级题集的链表部分,emmm都不会QWQ。 按照网上题解写了一遍,记录一下。 前两道排序的题,排序部分很简洁也很模板化。题目中建立dummy节点的操作也值得记录。第三道题是理解链表的好题目。 总之三道题都很值得去做并记忆。ヾ(◍°∇°◍)ノ゙ 23. 合并K个元素的有序链表 题目 Merge k sorted linked lists and return it as one...原创 2018-12-19 22:49:47 · 240 阅读 · 0 评论 -
[LeetCode] x 的平方根
x 的平方根 题目 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 思路 即求res∗res<=x and (res+1)∗(res+1)>xres*res<=x \ and \ (res+1)*(res+1)&gt...原创 2018-11-28 11:31:12 · 167 阅读 · 0 评论 -
[LeetCode] 29.两数相除
两数相除 题目 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 说明: 被除数和除数均为 32 位有符号整数。 除数不为 0。 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。本题中,如果除法结果溢出,则返回 2...原创 2018-11-28 10:14:44 · 133 阅读 · 0 评论 -
[LeetCode] 75.颜色分类
题目 颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2] 要求: 原地算法 复杂度O(n) 不使用库函数 思路 充分利用只有三个元素的特性。 方法一 —— 计数填...原创 2018-11-11 13:26:05 · 359 阅读 · 0 评论 -
[LeetCode] - 奇偶链表
奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5-&am原创 2018-10-30 15:06:13 · 297 阅读 · 0 评论 -
种类并查集小结
最近做了两道种类并查集,各种看题解终于弄懂了.. 种类并查集就是给定的数据分属不同阵营,根据所给的信息把点连到一个或多个集合,然后通过在集合之间的所属关系,推断某两个元素之间的关系。 在做这类题目时,一般至少需要两个数组,f记录元素的父节点,dep数组记录某个元素到它根节点这一区间的状态。 以POJ 1733题为例 Parity game Time Limit: 1000MS ...原创 2014-08-08 08:57:34 · 663 阅读 · 0 评论 -
hdu2473 Junk-Mail Filter
//并查集删除点的操作 //给每个点i一个映射id[i],初始id[i]=i //当删除i的时候,将id[i]=cnt++ //即使用一个额外的新点代替点i在原树中的位置 //每次查询、合并操作途经新点 #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <string.h> #inc...原创 2015-08-01 10:03:48 · 334 阅读 · 0 评论 -
旋转数组
题目 旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 思路 长为s的数组,向右挪动k次,即将前l-k个元素放到最后。 代码 class Solution { public: void rotate(vector<int>&...原创 2018-10-10 10:39:41 · 123 阅读 · 0 评论 -
实现strStr()--KMP
实现strStr()–KMP 题目 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 思路 暴力可解,用KMP的话是一道模板题。 从大二开始看KMP,理解一次忘一次。又重新理解了一遍,手敲了一遍代码,写下来自己的理解,希望能记住吧。(:...原创 2018-10-10 10:38:34 · 1166 阅读 · 0 评论 -
[LeetCode] 326 - 3的幂。c语言精度问题。
题目链接:3的幂 题目描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。 要求不用循环或递归,O(1)判断。 有各种奇奇怪怪的方法,打表int范围内的3的次幂比对,int范围内最大的3的次幂一定是n倍数,求log3(n)是否为整数,三进制判断是否只有首位为1等等。 我用了判断log3(n)是否为整数的方法。 C语言的log只有以10和e为底的,其他要用换底公式,如: log3(n)=lo...原创 2018-10-15 21:05:50 · 773 阅读 · 0 评论 -
[LeetCode]计数质数 - O(n)筛素数
emmmm太久没做题连筛素数都忘了。又看了一遍算法,记录一下。 题目:求小于N的素数的个数。 链接:计数质数 代码: class Solution { public: int getPrime(int n) { vector<int> prime; vector<bool> check(n,false); fo...原创 2018-10-13 15:18:55 · 316 阅读 · 0 评论 -
[LeetCode] 最大子序列问题总结
152. 乘积最大子序列 乘积最大子序列 题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 思路 不用dp数组,维护一个到当前位置i的最大值mmax...原创 2019-01-18 17:28:38 · 396 阅读 · 0 评论