程序算法
cxy1109
这个作者很懒,什么都没留下…
展开
-
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。
摘自http://blog.csdn.net/wangyezi19930928/article/details/52516332 思路: 考虑一个普通的加法计算:5+17=22 在十进制加法中可以分为如下3步进行: 1. 忽略进位,只做对应各位数字相加,得到12(个位上5+7=12,忽略进位,结果2); 2. 记录进位,上一步计算中只有个位数字相加有进位1,进位值为1转载 2018-02-06 12:06:59 · 399 阅读 · 0 评论 -
给定一个数字列表,返回其所有可能的排列。 注意事项 你可以假设没有重复数字。
Lintcode 15 全排列给定一个数字列表,返回其所有可能的排列。 注意事项你可以假设没有重复数字。思路:思路:n个数字额全排列等于将最后一个数字k插入前n-1个数的全排列中,这就是递归思想int类型的nums数组作为输入1.当只有一个数时输出这个数的排列2.否则将这个nums的前n-1个数赋值到array数组中3.递归调用返回排列,本代码中返回List4.对List中的每一个排列构造全排列p...原创 2018-03-08 18:40:23 · 3261 阅读 · 0 评论 -
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数
Lintcode 54 转换字符串到整数实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。解题思路:这题需要考虑周全,数字和字符的情况很多1.获取字符串(1)当首位时,除去空格后判断首位是否为数字或“+”,“-”号,如果是继续,...原创 2018-03-08 18:55:36 · 2517 阅读 · 0 评论 -
Lintcode17 子集
给定一个含不同整数的集合,返回其所有的子集 注意事项子集中的元素排列必须是非降序的,解集必须不包含重复的子集样例如果 S = [1,2,3],有如下的解:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路:求n个数的子集等于求前n-1个数的子集和这最后一个数构成的子集,运用递归求解代码如下: public c...原创 2018-03-13 17:24:46 · 195 阅读 · 0 评论 -
Lintcode 20 骰子求和
扔 n 个骰子,向上面的数字之和为 S。给定 Given n,请列出所有可能的 S 值及其相应的概率。样例给定 n = 1,返回 [ [1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]。思路:扔n个骰子数字和及概率相当于求前n-1个骰子和及概率与第n个骰子和及概率。1.当n<=0,返回空2.当n=1时,返回1-6...原创 2018-03-13 17:28:36 · 255 阅读 · 0 评论 -
Lintcode 24 LFU缓存
LFU是一个著名的缓存算法实现LFU中的set 和 get样例capacity = 3set(2,2) set(1,1) get(2) >> 2 get(1) >> 1 get(2) >> 2 set(3,3) set(4,4) get(3) >> -1 get(2) >> 2 get(1) >> 1 get(4) >&原创 2018-03-13 17:42:13 · 306 阅读 · 0 评论