关闭

阶乘-LintCode

给一个数字 n, 以字符串的形式返回数字的阶乘样例: 给一个数字 n = 20 返回 2432902008176640000思路: 大数阶乘,预先申请数组空间,并用数组表示结果的每一位。 例如: n=2,此时res[0]=1,res[0]*2=2,res[0]=2; n=3,res[0]*3=6(个位数),res[0]=6; n=4,res[0]*4=24,res[0]=4(表示个位)...
阅读(3) 评论(0)

两数之和 - BST版本-LintCode

给一棵二叉搜索树以及一个整数 n, 在树中找到和为 n 的两个数字注意事项: Without any extra space.样例: 给一棵BST: 4 / \ 2 5 / \ 1 3以及一个整数 n = 3 返回 [1, 2] 或 [2, 1]思路: 遍历节点,求得节点值与n的差,从根开始寻找值为差的节点是否存在。#ifndef C689_H #define C6...
阅读(7) 评论(0)

单词表示数字-LintCode

给一个非负整数 n, 用单词打印数字注意事项 n <= 2147483647样例: 给出 n = 125 返回 one hundred twenty five思路: 根据n的位数来判断是”billion”,”million”,”thousand”,”hundred”,还是十位数或者个位数。 对于位数较长的数字,递归求解。#ifndef C688_H #define C688_H #inclu...
阅读(4) 评论(0)

缺少的字符串-LintCode

给出两个字符串,你需要找到缺少的字符串样例: 给一个字符串 str1 = This is an example, 给出另一个字符串 str2 = is example 返回 [“This”, “an”]#ifndef C684_H #define C684_H #include #include #include #include u...
阅读(46) 评论(0)

缺失的第一个素数-LintCode

给一个整数数组,找到最小的未出现的素数样例: 给一个数组 [2,3,5,7,11,13,17,23,29] 返回 19思路: 若数组第一位不是2,结果一定返回2。 分两种情况: 缺失的数字在数组范围内; 缺失的数字大于数组的最大值。 对于第一种情况,遍历3~数组最大值,找到数组内所有元素都无法整除的数; 若这个数不存在,就是第二种情况,从数组最大值+1开始向后遍历,找到第一个 让数...
阅读(59) 评论(0)

分割字符串-LintCode

给一个字符串,你可以选择在一个字符或两个相邻字符之后拆分字符串,使字符串由仅一个字符或两个字符组成,输出所有可能的结果样例: 给一个字符串”123” 返回[[“1”,”2”,”3”],[“12”,”3”],[“1”,”23”]]#ifndef C680_H #define C680_H #include #include #include #i...
阅读(47) 评论(0)

转换成回文串-LintCode

给一个字符串 S, 你可以通过在前面添加字符将其转换为回文串.找到并返回用这种方式转换的最短回文串.样例: 给出 “aacecaaa”, 返回 “aaacecaaa” 给出 “abcd”, 返回 “dcbabcd”思路: 先判断是否是回文串,如果是,直接返回本身。 否则,将字符串的最后一个字符插入到字符串的第一字符前面,在判断是否是回文串, 如果不是,就将字符串倒数第二个字符插入到字符串的...
阅读(39) 评论(0)

大岛的数量-LintCode

给一个布尔类型的二维数组, 0 表示海, 1 表示岛。如果两个1是相邻的,那么我们认为他们是同一个岛.我们只考虑 上下左右 相邻. 找到大小在 k 及 k 以上的岛屿的数量样例: 给一个二维数组:[ [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] ]给出 K...
阅读(25) 评论(0)

循环单词-LintCode

The words are same rotate words if rotate the word to the right by loop, and get another. Count how many different rotate word sets in dictionary. E.g. picture and turepic are same rotate words.注意事项:...
阅读(25) 评论(0)

猜数游戏-LintCode

我们正在玩猜数游戏。 游戏如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个号码。 每次你猜错了,我会告诉你这个数字是高还是低。 你调用一个预定义的接口 guess(int num),它会返回 3 个可能的结果(-1,1或0):样例: n = 10, I pick 4 (but you don’t know) Return 4. Correct !#ifndef C662_H...
阅读(42) 评论(0)

把二叉搜索树转化成更大的树-LintCode

给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值得节点值之和(包括该节点)。样例:Given a binary search Tree `{5,2,13}`: 5 / \ 2 13Return the root of new tree...
阅读(25) 评论(0)

Insert Delete GetRandom O(1)-LintCode

设计一个数据结构实现在平均 O(1) 的复杂度下执行以下所有的操作。 insert(val): 如果这个元素不在set中,则插入。 remove(val): 如果这个元素在set中,则从set中移除。 getRandom: 随机从set中返回一个元素。每一个元素返回的可能性必须相同。 样例:// 初始化空集set RandomizedSet randomSet = new RandomizedSet...
阅读(16) 评论(0)

大整数乘法-LintCode

以字符串的形式给定两个非负整数 num1 和 num2,返回 num1 和 num2 的乘积。样例: num1 和 num2 的长度都小于110。 num1 和 num2 都只包含数字 0 - 9。 num1 和 num2 都不包含任意前导零。 您不能使用任何内置的BigInteger库内方法或直接将输入转换为整数。思路: 将乘法转化为加法。 #ifndef C656_H #define C656...
阅读(29) 评论(0)

大整数加法-LintCode

以字符串的形式给出两个非负整数 num1 和 num2,返回 num1 和 num2 的和。注意事项: num1 和 num2 的长度都小于5100。 num1 和 num2 都只包含数字 0-9。 num1 和 num2 都不包含任何前导零。 您不能使用任何内置的BigInteger库内的方法或直接将输入转换为整数。 样例: 给定 num1 = “123”,num2 = “45” 返回 “1...
阅读(26) 评论(0)

添加运算符-LintCode

给定一个仅包含数字 0 - 9 的字符串和一个目标值,返回在数字之间添加了 二元 运算符(不是一元)+, - 或 * 之后所有能得到目标值的情况。样例:"123", 6 -> ["1+2+3", "1*2*3"] "232", 8 -> ["2*3+2", "2+3*2"] "105", 5 -> ["1*0+5","10-5"] "00", 0 -> ["0+0", "0-0", "0*0"]...
阅读(29) 评论(0)
268条 共18页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:17304次
    • 积分:2719
    • 等级:
    • 排名:第14316名
    • 原创:265篇
    • 转载:3篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论