lintcode
insidel
这个作者很懒,什么都没留下…
展开
-
LintCode-最大间距
LintCode-最大间距给定一个未经排序的数组,请找出其排序表中连续两个要素的最大间距。 如果数组中的要素少于 2 个,请返回 0. 注意事项 可以假定数组中的所有要素都是非负整数,且最大不超过 32 位整数。 样例 给定数组 [1, 9, 2, 5],其排序表为 [1, 2, 5, 9],其最大的间距是在 5 和 9 之间,= 4.class Solution { public: /*原创 2017-06-30 21:46:46 · 273 阅读 · 0 评论 -
LintCode-Intersection of Arrays
给出多个数组,求它们的交集。输出他们交集的大小。 注意事项 输入的所有数组元素总数不超过500000。 题目数据每个数组里的元素没有重复。题目不写 数据规模,还以为是什么没见过的算法,结果用set查找就行。 不用stl自己写的话估计要做个二叉搜索树什么的。 class Solution { public: /** * @param arrs: the arrays ...原创 2018-03-11 20:04:21 · 175 阅读 · 0 评论 -
LintCode-最长公共字串
79. 最长公共子串 描述 给出两个字符串,找到最长公共子串,并返回其长度。 注意事项 子串的字符应该连续的出现在原字符串中,这与子序列有所不同。 样例 给出A=“ABCD”,B=“CBCE”,返回 2 挑战 O(n x m) time and memory. 标签 字符串处理 网上看到的都是dp解法,时间复杂度O(n...原创 2018-03-11 01:18:18 · 141 阅读 · 0 评论 -
LintCode-岛屿的个数
433. 岛屿的个数 给一个01矩阵,求不同的岛屿的个数。 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 样例 在矩阵: [ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1] ] 中有 3 个岛. ...原创 2018-02-28 17:06:17 · 1379 阅读 · 0 评论 -
LintCode-岛屿的个数II
434. 岛屿的个数II 给定 n,m,分别代表一个2D矩阵的行数和列数,同时,给定一个大小为 k 的二元数组A。起初,2D矩阵的行数和列数均为 0,即该矩阵中只有海洋。二元数组有 k 个运算符,每个运算符有 2 个整数 A[i].x, A[i].y,你可通过改变矩阵网格中的A[i].x],[A[i].y] 来将其由海洋改为岛屿。请在每次运算后,返回矩阵中岛屿的数量。 注意事项 ...原创 2018-02-28 16:40:33 · 672 阅读 · 0 评论 -
LintCode-最大数
最大数 描述 给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项 最后的结果可能很大,所以我们返回一个字符串来代替这个整数。 样例 给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。 挑战 在 O(nlogn) 的时间复杂度内完成。 堆排序跟优先队列都能达到O(nlogn) 坑1:输入{0,0}要输出0 坑2:前几位相同但不同原创 2018-02-05 17:06:25 · 181 阅读 · 0 评论 -
LintCode-最长连续序列
最长连续序列 描述 给定一个未排序的整数数组,找出最长连续序列的长度。说明 要求你的算法复杂度为O(n)样例 给出数组[100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4],返回所求长度 4 一开始用的map,改成unordered_map之后会快10%左右class Solution { public: /** * @param nums:原创 2017-07-11 19:04:13 · 1392 阅读 · 0 评论 -
LintCode-交换链表当中两个节点
交换链表当中两个节点 描述 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。注意事项 你需要交换两个节点而不是改变节点的权值样例 给出链表 1->2->3->4->null ,以及 v1 = 2 , v2 = 4 返回结果 1->4->3->2->null。 由于要同时记录两个指针的pre、next,所以原创 2017-08-24 17:52:44 · 1422 阅读 · 0 评论 -
LintCode-各位相加
各位相加描述 给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。样例 给出 num = 38。相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。挑战 你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么? class Solution { public: /** * @param num原创 2017-07-08 22:11:48 · 393 阅读 · 0 评论 -
LintCode-直方图最大矩形覆盖
直方图最大矩形覆盖 Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram where width o原创 2017-07-07 14:26:57 · 414 阅读 · 0 评论 -
LintCode-最大正方形&最大矩形
最大正方形 描述 在一个二维01矩阵中找到全为1的最大正方形 样例 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4 分析一下样例, 位置3,5的最大正方形 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 由(i-1,j),(i-1,j-1),(i,j-1)三个位置的最大正方形最小值决定: 1 0 1 0 0 1原创 2017-07-07 14:59:30 · 667 阅读 · 0 评论 -
LintCode-单词接龙II
LintCode-单词接龙II给出两个单词(start和end)和一个字典,找出所有从start到end的最短转换序列 比如: 每次只能改变一个字母。 变换过程中的中间单词必须在字典中出现。注意事项 所有单词具有相同的长度。 所有单词都只包含小写字母。样例 给出数据如下:start = "hit"end = "cog"dict = ["hot","dot","dog","lot","log"]原创 2017-07-01 20:27:12 · 1831 阅读 · 0 评论 -
LintCode-k数和
LintCode-k数和给定n个不同的正整数,整数k(k < = n)以及一个目标数字。 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?样例 给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案 用dp解,d[i][j]内含一个map,表示前j+1个数中取i+1个组合成各个和(将大于n的去掉)的组合数量 i=j=0时,d原创 2017-07-02 00:56:02 · 539 阅读 · 0 评论 -
LintCode-4 Keys Keyboard 数学解法
867. 4 Keys Keyboard Imagine you have a special keyboard with the following keys: Key 1: (A): Print one ‘A’ on screen. Key 2: (Ctrl-A): Select the whole screen. Key 3: (Ctrl-C): Copy selection to ...原创 2018-03-20 18:47:24 · 380 阅读 · 0 评论