LintCode
Jang1996
这个作者很懒,什么都没留下…
展开
-
LintCode(容易)二进制求和
class Solution {public: /** * @param a a number * @param b a number * @return the result */ string addBinary(string& a, string& b) { string lg, st; lg = (a.size() >原创 2016-07-20 14:28:19 · 707 阅读 · 0 评论 -
LintCode(E)
在O(1)时间复杂度删除链表节点描述 笔记 数据 评测 给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。您在真实的面试中是否遇到过这个题? Yes 样例 给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。/** * Definition of ListNode * class ListNode原创 2016-12-07 19:56:23 · 304 阅读 · 0 评论 -
lintcode删除排序链表重复数字
效果: 0->1->1->2->3->null 输出 0->1->2->3->null/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val;原创 2016-12-07 08:54:20 · 264 阅读 · 0 评论 -
lintcode(E) 删除链表中的元素
删除链表中的元素描述 笔记 数据 评测 删除链表中等于给定值val的所有节点。您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。最开始我的代码:/** * Definition for singly-linked list. * struct ListNo原创 2016-12-06 21:01:30 · 306 阅读 · 0 评论 -
把排序数组转换为高度最小的二叉搜索树
把排序数组转换为高度最小的二叉搜索树描述 笔记 数据 评测 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。您在真实的面试中是否遇到过这个题? Yes 样例 给出数组 [1,2,3,4,5,6,7], 返回 4/ \ 2 6 / \ / \ 1 3 5 7 挑战 标签 相关题目 /** * Definition原创 2016-11-28 21:31:19 · 457 阅读 · 0 评论 -
Lintcode(入门)463
class Solution {public: /** * @param A an integer array * @return void */ void sortIntegers(vector<int>& A) { // Write your code here for(auto &c:A){原创 2016-07-18 17:21:14 · 280 阅读 · 0 评论 -
LintCode398:判断数独是否合法
先判断行,再判断列。然后判断方格(!!!注意有九个方格)//判断方格代码。 for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int row = j / 3 + i / 3*3, int col = j%3 + i%3*3;原创 2016-07-18 09:37:16 · 729 阅读 · 0 评论 -
LintCode(容易)365.二进制中有多少个1(正确版)
class Solution {public: /** * @param num: an integer * @return: an integer, the number of ones in num */ int countOnes(int num) { int w;int i = 0; if (num == 0)原创 2016-07-21 16:13:21 · 395 阅读 · 0 评论 -
LintCode(easy)111.爬楼梯(bug集)
bug1: 原因:完全没考虑n可能为奇数,以及n=1的情况。 bug2(bug1的进阶): 原因:对n==2,规律同样不适用。 bug3(bug2进阶): 原因:此时我终于发现我的思路上的bug了,我的原意是算出跨的次数最多和最少的值,然后所有可能性都在这两者中间,所以w=n-n/2+2;(n为偶数情况下)。但是我忽略了当跨的次数相同时,跨法有很多种,比如2-2-1,1-2-2原创 2016-07-21 16:30:33 · 728 阅读 · 0 评论 -
LintCode(easy)比较字符串(正确版)
class Solution {public: /** * @param A: A string includes Upper Case letters * @param B: A string includes Upper Case letter * @return: if string A contains all of the characters i原创 2016-07-22 14:58:17 · 305 阅读 · 0 评论 -
LintCode(easy)字符串查找(bug集)
目前思路: 当target字符串大于等于3时,先将target字符串的前三位单独列出来,与source字符串比较,只有与前三个字符匹配的才能进入下一步筛选,下一步则是将字符串全部比较完。 当target字符串过大,则将增加第一轮匹配的字符个数 首先,我看到题目中形参为char型字符串,然后查资料: 由于char型字符串没有可以截取它的字符串的函数,所以我决定将其转化成string,比如:ch原创 2016-07-22 18:45:42 · 361 阅读 · 0 评论 -
LintCode(easy)字符串查找
class Solution {public: /** * Returns a index to the first occurrence of target in source, * or -1 if target is not part of source. * @param source string to be scanned. * @pa原创 2016-07-23 15:39:15 · 702 阅读 · 0 评论 -
LintCode(easy)旋转字符串(!!!我有史以来解决的问题最快的一次,心酸流泪)
class Solution {public: /** * @param str: a string * @param offset: an integer * @return: nothing */ void rotateString(string &str,int offset){ //wirte your code he原创 2016-07-23 17:18:58 · 435 阅读 · 0 评论 -
LintCode(M)删除排序链表中的重复数字 II
删除排序链表中的重复数字 II描述 笔记 数据 评测 给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。您在真实的面试中是否遇到过这个题? Yes 样例 给出 1->2->3->3->4->4->5->null,返回 1->2->5->null给出 1->1->1->2->3->null,返回 2->3->null标签 相关题目 思路:首先,这是排序链表,而且要原创 2016-12-08 17:08:10 · 317 阅读 · 0 评论 -
Lintcode(M) 二叉树的层次遍历
二叉树的层次遍历描述 笔记 数据 评测 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes 样例 给一棵二叉树 {3,9,20,#,#,15,7} :3 / \ 9 20 / \ 15 7 返回他的分层遍历结果:[ [3], [9,20], [15,7] ]/** * Definiti原创 2016-11-28 10:49:45 · 728 阅读 · 0 评论 -
lintcode(M)二叉树的层序遍历II
二叉树的层次遍历 II描述 笔记 数据 评测 给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {3,9,20,#,#,15,7},3/ \ 9 20 / \ 15 7 按照从下往上的层次遍历为:[ [15,7],原创 2016-11-28 10:52:10 · 274 阅读 · 0 评论 -
LintCode(M)三数之和
三数之和描述 笔记 数据 评测 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。注意事项在三元组(a, b, c),要求a <= b <= c。结果不能包含重复的三元组。您在真实的面试中是否遇到过这个题? Yes 样例 如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是:(-1, 0, 1)(-1,原创 2016-12-21 09:29:09 · 547 阅读 · 0 评论 -
LintCode(M)两数之和
两数之和描述 笔记 数据 评测 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。注意事项你可以假设只有一组答案。您在真实的面试中是否遇到过这个题? Yes 样例 给出 numbers = [2, 7, 11, 15], tar原创 2016-12-20 20:46:36 · 499 阅读 · 0 评论 -
LintCode(M) 乱序字符串
乱序字符串描述 笔记 数据 评测 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。注意事项所有的字符串都只包含小写字母您在真实的面试中是否遇到过这个题? Yes 样例 对于字符串数组 [“lint”,”intl”,”inlt”,”code”]返回 [“lint”,”inlt”,”i原创 2016-12-20 11:16:11 · 920 阅读 · 0 评论 -
LintCode(M) 复制带随机指针的复杂链表
复制带随机指针的链表描述 笔记 数据 评测 给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 您在真实的面试中是否遇到过这个题? Yes 样例 挑战 可否使用O(1)的空间思路:一开始我的思路算法比较复杂,然后在《剑指offer》找到原题,正确思路应该如下:在每个节点后复制一个和本节点一样的节点,然后cur->next原创 2016-12-20 10:53:59 · 376 阅读 · 0 评论 -
lintcode(E)链表倒数第n个节点
表倒数第n个节点描述 笔记 数据 评测 找到单链表倒数第n个节点,保证链表中节点的最少数量为n。您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.思路:两个指针开头均指向head,一个先走n步,第二个在开始走,然后第一个指针走到尽头的时候,和第二个指针差n个,此时,第二个指针就正好指向倒数第n个节点原创 2016-12-18 10:29:11 · 270 阅读 · 0 评论 -
lintcode(E) 二叉树最小深度
二叉树的最小深度描述 笔记 数据 评测 给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2思路是和最大深度是一样的,但是最初我做错了,我将最大深度直接搬原创 2016-12-18 09:57:20 · 392 阅读 · 0 评论 -
E 二叉树最大深度
二叉树的最大深度描述 笔记 数据 评测 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵如下的二叉树:1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3.class Solution {public: /** * @param root:原创 2016-12-18 09:53:42 · 439 阅读 · 0 评论 -
LintCode(S)二叉查找树插入节点
在二叉查找树中插入节点描述 笔记 数据 评测 给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。您在真实的面试中是否遇到过这个题? Yes 样例 给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:2 2 / \ / \ 1 4 –> 1 4 /原创 2017-01-03 09:20:52 · 401 阅读 · 0 评论 -
LintCode(M)带min函数的栈
带最小值操作的栈描述 笔记 数据 评测 实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。注意事项如果堆栈中没有数字则不能进行min方法的调用您在真实的面试中是否遇到过这个题? 样例 如下操作:push(1),pop(),push(2),push(3),min(), pus原创 2016-12-21 15:53:50 · 324 阅读 · 0 评论 -
Lintcode(S)落单的数
落单的数描述 笔记 数据 评测 给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes 样例 给出 [1,2,2,1,3,4,3],返回 4挑战 一次遍历,常数级的额外空间复杂度标签 相关题目 解法一:class Solution {public: /** * @param A:原创 2016-12-21 11:15:28 · 285 阅读 · 0 评论 -
链表求和
链表求和描述 笔记 数据 评测 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。您在真实的面试中是否遇到过这个题? Yes 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null/** * Definitio原创 2016-12-10 10:00:26 · 329 阅读 · 0 评论 -
LintCode(E) 链表插入排序
链表插入排序描述 笔记 数据 评测 用插入排序对链表排序您在真实的面试中是否遇到过这个题? Yes 样例 Given 1->3->2->0->null, return 0->1->2->3->null思路:首先对照,线性表插入排序void insertsort(int a[],int len){for(int i=1;i<len;++i){for(int j=i-1;j>=0原创 2016-12-10 08:55:05 · 335 阅读 · 0 评论 -
LintCode(easy)翻转字符串
bug1for (int i = 0; i < s.size(); i++){ //if (s[0] == ' ') s.erase(0, 1); //if (s[s.size()-1] == ' ') s.erase(s.size()-1, 1); if (s[i] == ' '&&s[i - 1] == ' ') {原创 2016-07-26 11:27:19 · 502 阅读 · 1 评论 -
判断字符串中是否没有重复的字符
bug1: 错误原因: 是查找有没有重复的字符,而不是字母 成功代码:class Solution {public: /** * @param str: a string * @return: a boolean */ bool isUnique(string &str) { // write your code here原创 2016-07-26 16:47:59 · 624 阅读 · 0 评论 -
LintCode(M)背包问题2
public class Solution { /** * @param m: An integer m denotes the size of a backpack * @param A & V: Given n items with size A[i] and value V[i] * @return: The maximum value */原创 2016-08-27 15:10:13 · 469 阅读 · 0 评论 -
LintCode(M)最小调整代价(待续)
最初有bug的代码:class Solution {public: /** * @param A: An integer array. * @param target: An integer. */ int MinAdjustmentCost(vector<int> A, int target) { // write your code here原创 2016-08-29 20:57:26 · 725 阅读 · 0 评论 -
LintCode(M)打劫房屋(动态规划)
最初代码:class Solution {public: /** * @param A: An array of non-negative integers. * return: The maximum amount of money you can rob tonight */ long long houseRobber(vector<int> A)原创 2016-08-30 15:04:57 · 687 阅读 · 0 评论 -
LintCode(M)打劫房屋2——动态规划
思路: 最后一次的状态方程为: i=nums.size()-1;//i为最后一家 a[i]=max(houseRobber(A)+nums[i], houseRobber(B)); 说明:1. houseRobber(A)+nums[i]为抢最后一家的情况, A为{nums[1]….nums[i-2]}//少了第一家和最后两家。 2. houseRobb原创 2016-08-30 21:32:47 · 1233 阅读 · 0 评论 -
LintCode打劫房屋3(M)
思路: 首先这是二叉树,每个节点最多有两个分支,然后递归,详见课程设计原创 2016-09-21 10:47:48 · 543 阅读 · 0 评论 -
LintCode(M)最长公共前缀
最初我的思路是把每个string的第i个字母截下来,然后比较,这样带来的问题是每个string的长度不一样,在截取字符串的时候要怎么保证不超出范围。 然后我参考网上的解决方案,我太笨了,为什么要截取???直接用下标啊!然后我发现我其实还不止这么笨,为什么要每次都把全部string召集起来比较???明明只要把第一个和第二个字符串比较后得到的最长公共前缀记下来,然后再去和第三个字符串比较,然后又得到最原创 2016-09-21 10:55:33 · 381 阅读 · 0 评论 -
LintCode(easy)最长上升连续子序列
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)注意事项time您在真实的面试中是否遇到过这个题? Yes 样例 给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4.给定 [5, 1, 2, 3, 4], 其最长上升连续原创 2016-10-15 10:01:41 · 416 阅读 · 0 评论 -
LintCode(M)最长上升子序列
最长上升子序列描述 笔记 数据 评测 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题? Yes 说明 最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 https://en.wikipedia.org/wiki/Longest_incre原创 2016-10-15 11:34:48 · 373 阅读 · 0 评论 -
LintCode(easy)二分查找
二分查找描述 笔记 数据 评测 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。您在真实的面试中是否遇到过这个题? Yes 样例 在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。挑战 如果数组中的整数个数超过了2^32,你的算原创 2016-10-16 16:34:00 · 305 阅读 · 0 评论 -
LintCode(M)
带环链表描述 笔记 数据 评测 给定一个链表,判断它是否有环。样例 给出 -21->10->4->5, tail connects to node index 1,返回 true挑战 标签 相关题目原创 2016-10-20 09:27:39 · 252 阅读 · 0 评论