
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 · 291 阅读 · 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 · 571 阅读 · 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 · 168 阅读 · 0 评论 -
[LeetCode] 29.两数相除
两数相除题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。说明:被除数和除数均为 32 位有符号整数。除数不为 0。假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。本题中,如果除法结果溢出,则返回 2...原创 2018-11-28 10:14:44 · 135 阅读 · 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 · 360 阅读 · 0 评论 -
[LeetCode] - 奇偶链表
奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例1:输入: 1->2->3->4->5->NULL输出: 1->3->5-&am原创 2018-10-30 15:06:13 · 298 阅读 · 0 评论 -
种类并查集小结
最近做了两道种类并查集,各种看题解终于弄懂了..种类并查集就是给定的数据分属不同阵营,根据所给的信息把点连到一个或多个集合,然后通过在集合之间的所属关系,推断某两个元素之间的关系。在做这类题目时,一般至少需要两个数组,f记录元素的父节点,dep数组记录某个元素到它根节点这一区间的状态。以POJ 1733题为例Parity gameTime 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 · 336 阅读 · 0 评论 -
旋转数组
题目旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。说明:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。要求使用空间复杂度为 O(1) 的原地算法。思路长为s的数组,向右挪动k次,即将前l-k个元素放到最后。代码class Solution {public: void rotate(vector<int>&...原创 2018-10-10 10:39:41 · 124 阅读 · 0 评论 -
实现strStr()--KMP
实现strStr()–KMP题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。思路暴力可解,用KMP的话是一道模板题。从大二开始看KMP,理解一次忘一次。又重新理解了一遍,手敲了一遍代码,写下来自己的理解,希望能记住吧。(:...原创 2018-10-10 10:38:34 · 1168 阅读 · 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 · 774 阅读 · 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 · 317 阅读 · 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 · 399 阅读 · 0 评论