LintCode
viease
nothing
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1. A + B 问题
思路 模拟二进制计算 1.先转化为2个二进制数 2.二进制数相加,因为加法结合律 (a + b) + c = a + (b + c) 推出 a + b = (a - c) + (b - d) + (c + d) 3.采用^ 和 & 来获得两个数的 相加不进位的结果(a ^ b) 和 只进位的结果((a & b) << 1) 4.结合2和3,通过拆分数字可以得到 a +...原创 2018-08-14 17:24:25 · 181 阅读 · 0 评论 -
157. 判断字符串是否没有重复字符
思路 实现一个算法确定字符串中的字符是否均唯一出现 样例 给出"abc",返回 true 给出"aab",返回 false Python class Solution: """ @param: str: A string @return: a boolean """原创 2018-08-15 10:17:02 · 563 阅读 · 0 评论 -
167. 链表求和
思路 你有两个用链表代表的整数,其中每个节点包含一个数字。 数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。 写出一个函数将两个整数相加,用链表形式返回和。 给出两个链表 3-&gt;1-&gt;5-&gt;null + 5-&gt;9-&gt;2-&gt;null = 8-&gt;0-&gt;8-&gt;null Definitio原创 2018-08-15 10:17:11 · 282 阅读 · 0 评论 -
181. 将整数A转换为B
思路 如果要将整数A转换为B,需要改变多少个bit位?Both n and m are 32-bit integers. 如把31转换为14,需要改变2个bit位。 (31)10=(011111)2 (14)10=(001110)2 (67)10=(100011)2 (1)10 =(000001)2 (-1)10=(111111) 分析: 可以转换为 A^B 的二进制 1 的数量 ...原创 2018-08-15 10:17:19 · 302 阅读 · 0 评论 -
204. 单例
思路 单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式 你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例 样例 在 Java 中: ...原创 2018-08-16 16:38:26 · 311 阅读 · 0 评论 -
22. 平面列表
思路 给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。 (如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。) 样例 给定 [1,2,[1,2]],返回 [1,2,1,2]。 给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]。 Python class Solution(object): # @param ne...原创 2018-08-15 10:13:36 · 255 阅读 · 0 评论 -
28. 搜索二维矩阵
思路 写出一个高效的算法来搜索 m × n矩阵中的值 这个矩阵具有以下特性: 每行中的整数从左到右是排序的 每行的第一个数大于上一行的最后一个整数 样例 考虑下列矩阵: [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] 给出 target = 3,返回 ...原创 2018-08-15 10:13:22 · 192 阅读 · 0 评论 -
30. 插入区间
思路 插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。 插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。 Python class Interval: def __init__(self, start, end): self.start = start ...原创 2018-08-15 10:12:46 · 297 阅读 · 0 评论 -
31. 数组划分
思路 数组划分 快排的一个Step 方法一:两个指针head &amp; tail, 交替比较直到head 和 tail 重合 方法二:直接求比他小的数字的个数 Python class Solution: """ @param nums: The integer array you should partition @param k: An integer ...原创 2018-08-15 10:12:19 · 303 阅读 · 0 评论 -
14. 二分查找
思路 给定一个排序的整数数组(升序)和一个要查找的整数target, 用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。 Python class Solution: # @param nums: The integer array ...原创 2018-08-15 10:15:31 · 245 阅读 · 0 评论 -
13. 字符串查找
思路 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。 样例 如果 source = &quot;source&quot; 和 target = &quot;target&quot;,返回 -1。 如果 source = &quot;abcdabcdefg&quot原创 2018-08-15 10:14:20 · 514 阅读 · 0 评论 -
128. 哈希函数
思路 hashcode("abcd") = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 + ascii(d)) % HASH_SIZE = (97* 333 + 98 * 332 + 99 * 33 +100) % HASH_SIZE = 3595978 % HASH_SI...原创 2018-08-14 17:49:07 · 331 阅读 · 0 评论 -
2. 尾部的零
思路 设计一个算法,计算出n阶乘中尾部零的个数 样例 11! = 39916800,因此应该返回 2 分析 x! = r (我们需要计算 r 这个数字尾部有多少个0 ) r = (尾部不为0的因子) * (10的n次方) 这里的n就是我们需要计算得到的 那么 11! = 11 * 10 * 9 * 8 ... 我们需要计算的就是10、2、5的个数。由于 ...原创 2018-08-14 17:27:47 · 266 阅读 · 0 评论 -
3. 统计数字
思路 计算数字k在0到n中的出现的次数,k可能是0~9的一个值 样例 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12) Python class Solution: """ @param: : An integer @param: : A...原创 2018-08-14 17:31:01 · 296 阅读 · 0 评论 -
4. 丑数 II
思路 设计一个算法,找出只含素因子2,3,5 的第 n 小的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 注意事项 我们可以认为1也是一个丑数 样例 如果n = 9, 返回 10 分析 1是最小丑数 需要找到第n小的丑数,他的因子只含有2、3、5(可以重复) 每下一个数字可能是前面序列的数字的2,3,5倍, ...原创 2018-08-14 17:33:08 · 233 阅读 · 0 评论 -
5. 第k大元素
思路 在数组中找到第k大的元素 注意事项 你可以交换数组中的元素的位置 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推 分析 Python class Solution: # @param k & A a integer and an...原创 2018-08-14 17:35:41 · 218 阅读 · 0 评论 -
6. 合并排序数组 II
思路 合并两个排序的整数数组A和B变成一个新的数组 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] Python class Solution: """ @param A: sorted integer array A @param B: sorted integer array B @ret...原创 2018-08-14 17:37:46 · 464 阅读 · 0 评论 -
8. 旋转字符串
思路 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd" Python原创 2018-08-14 17:39:58 · 379 阅读 · 0 评论 -
9. Fizz Buzz 问题
思路 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数: 如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 比如 n = 15, 返回一个字符串数组: [ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8&quo原创 2018-08-14 17:42:18 · 341 阅读 · 0 评论 -
111. 爬楼梯
思路 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? eg: n = 3 1 + 1 + 1 = 1 + 2 = 2 + 1 = 3,共有3种不同的方法 return: 3 分析: 整数拆分问题 n = (n - 1) + 1 n = (n - 2) + 2 climbStair...原创 2018-08-14 17:46:52 · 162 阅读 · 0 评论 -
145. 大小写转换
思路 将一个字符由小写字母转换为大写字母 样例 a -&gt; A b -&gt; B Python class Solution: """ @param character: a character @return: a character """ def lowercaseToUppercase原创 2018-08-15 10:15:50 · 696 阅读 · 0 评论
分享