
LintCode
真理的追求者
这个作者很懒,什么都没留下…
展开
-
Fizz Buzz 问题
Fizz Buzz 问题给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz.样例比如 n = 15, 返回一个字符串数组:[ "1", "2", "fizz", "4", "buzz", "fizz", "7&q原创 2018-10-16 09:33:22 · 5633 阅读 · 0 评论 -
删除链表中倒数第n个节点
174. 删除链表中倒数第n个节点给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 样例给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.挑战O(n)时间复杂度注意事项链表中的节点个数大于等于n输入测试数据 (每...原创 2018-10-26 00:04:25 · 313 阅读 · 0 评论 -
合并两个排序链表
165. 合并两个排序链表将两个排序链表合并为一个新的排序链表样例给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。/** * Definition for ListNode * public class ListNode { *...原创 2018-10-26 09:38:49 · 2064 阅读 · 0 评论 -
翻转链表
35. 翻转链表翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战在原地一次翻转完成/** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * ...原创 2018-10-26 09:51:45 · 166 阅读 · 0 评论 -
子树
描述控制台245. 子树有两个不同大小的二叉树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。样例下面的例子中 T2 是 T1 的子树: 1 3 / \ / T1 = 2 3 T2 = 4 / 4...原创 2018-10-26 11:29:39 · 1531 阅读 · 0 评论 -
用递归打印数字
371. 用递归打印数字用递归的方法找到从1到最大的N位整数。样例给出 N = 1, 返回[1,2,3,4,5,6,7,8,9].给出 N = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99].挑战用递归完成,而非循环的方式。注意事项用下面这种方式去递归其实很容易:recursion(i) { if i > larges...原创 2018-10-26 19:02:30 · 1063 阅读 · 0 评论 -
快速幂
140. 快速幂计算an % b,其中a,b和n都是32位的非负整数。样例例如 231 % 3 = 2例如 1001000 % 1000 = 0挑战O(logn)class Solution {public: /** * @param a: A 32bit integer * @param b: A 32bit integer ...原创 2018-10-26 19:13:28 · 246 阅读 · 0 评论 -
爬楼梯
111. 爬楼梯假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法返回 3public class Solution { /** * @param n: An integer * @return: An integer ...原创 2018-10-26 19:35:12 · 198 阅读 · 0 评论 -
搜索二维矩阵
28. 搜索二维矩阵写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每行的第一个数大于上一行的最后一个整数。样例考虑下列矩阵:[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]给出 target = 3,返回 true挑战O(log(n) ...原创 2018-10-26 20:04:13 · 167 阅读 · 0 评论 -
160. 寻找旋转排序数组中的最小值 II
160. 寻找旋转排序数组中的最小值 II假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。数组中可能存在重复的元素。样例给出[4,4,5,6,7,0,1,2] 返回 0注意事项The array may contain duplicates.public class So...原创 2018-10-26 20:56:39 · 249 阅读 · 0 评论 -
Delete Node in a Linked List
372. Delete Node in a Linked List给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。样例Linked list is 1->2->3->4, and given node 3, delete the node in place 1->2->4 /** * Def...原创 2018-10-25 18:25:51 · 277 阅读 · 0 评论 -
奇偶分割数组
373. 奇偶分割数组分割一个整数数组,使得奇数在前偶数在后。样例给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。挑战在原数组中完成,不使用额外空间。class Solution {public: /* * @param nums: an array of integers * @return: nothing */...原创 2018-10-25 18:14:10 · 233 阅读 · 0 评论 -
斐波纳契数列
366. 斐波纳契数列查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...样例给定 1,返回 0给定 2,返回 1给定 10,返回 34 // https://www.l...原创 2018-10-16 09:46:10 · 209 阅读 · 0 评论 -
空格替换
212. 空格替换设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。样例对于字符串"Mr John Smith", 长度为 13替换空格之后,参数中的字符串需要变为"Mr%20John%20Smith",并且把新长度 17作为结果返回。挑战在原字...原创 2018-10-16 10:07:32 · 169 阅读 · 0 评论 -
二进制中有多少个1
365. 二进制中有多少个1计算在一个 32 位的整数的二进制表示中有多少个 1.样例给定 32 (100000),返回 1给定 5 (101),返回 2给定 1023 (1111111111),返回 10挑战If the integer is n bits with m 1 bits. Can you do it in O(m) time?// https://...原创 2018-10-16 10:27:43 · 802 阅读 · 0 评论 -
翻转链表
35. 翻转链表翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战在原地一次翻转完成/** * Definition of singly-linked-list: * * class ListNode { * public: * int val; * Li...原创 2018-10-16 10:36:10 · 120 阅读 · 0 评论 -
寻找旋转排序数组中的最小值
159. 寻找旋转排序数组中的最小值假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。样例给出[4,5,6,7,0,1,2] 返回 0注意事项You may assume no duplicate exists in the array. ...原创 2018-10-16 10:57:04 · 204 阅读 · 0 评论 -
前序遍历和中序遍历树构造二叉树
73. 前序遍历和中序遍历树构造二叉树根据前序遍历和中序遍历树构造二叉树.样例给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \1 3注意事项你可以假设树中不存在相同数值的节点/** * Definition of TreeNode: * class TreeNode { * public: * in...原创 2018-10-19 10:56:48 · 490 阅读 · 0 评论 -
用栈实现队列
40. 用栈实现队列正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2挑战仅使用两个栈来实...原创 2018-10-19 11:12:31 · 570 阅读 · 0 评论 -
搜索二维矩阵 II
38. 搜索二维矩阵 II写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。 样例考虑下列矩阵:[ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10]]给出ta...原创 2018-10-25 11:17:06 · 225 阅读 · 0 评论 -
单例
204. 单例单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。样例在 Java 中...原创 2018-10-25 17:58:21 · 187 阅读 · 0 评论 -
1. A + B 问题
1. A + B 问题给出两个整数 aa 和 bb , 求他们的和。样例如果 a=1 并且 b=2,返回3。挑战显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?(不使用++等算数运算符)说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以注意事项你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算...原创 2018-10-26 21:02:40 · 282 阅读 · 0 评论