随笔分类 -  problems

上一页 1 2 3 4 5 6 下一页

leetcode 70 Climbing Stairs
摘要:给定n阶楼梯,每次只能一步或两步,求共有多少种走法。 解法: 递归一看,明显f(n) = f(n - 1) + f(n - 2),斐波那契,迭代求。 阅读全文

posted @ 2018-01-23 11:07 willaty 阅读(84) 评论(0) 推荐(0)

leetcode 69 Sqrt(x)
摘要:实现开平方。 解决: n分逼近 牛顿迭代法: 牛顿迭代是求近似根的一种方法。 刚看到就想证明: 即若有: r * r > x (一) [(r + x/r) / 2] ^ 2 < x 则: [(r + x/r) / 2 + 1] ^ 2 > x 利用式(一)若干次放大缩小即可。 思考: 抛开数学不谈。 阅读全文

posted @ 2018-01-23 11:04 willaty 阅读(130) 评论(0) 推荐(0)

leetcode 58 Length of Last Word
摘要:给定一字符串,求最后一个单词的长度,其中空格为分隔符,可能含有多个。 从后往前算即可。 阅读全文

posted @ 2018-01-23 10:01 willaty 阅读(99) 评论(0) 推荐(0)

leetcode 53 Maximum Subarray
摘要:给定一个整型数组,其中若干项和最大,求最大值。 思路: 1. 动态规划,子状态为走到 i 的最大和,dp[i] = max(dp[i - 1], 0) + a[i],如果前一项比0小,就抛弃了。 2. 求每一项的前n向和,再遍历,减去前面出现过的最小和,从中选出最大值即可。 都很简单,这里给出dp的 阅读全文

posted @ 2018-01-23 09:59 willaty 阅读(86) 评论(0) 推荐(0)

leetcode 67 Add Binary
摘要:给定两个字符串,是二进制串,实现加法,返回也是二进制。 阅读全文

posted @ 2018-01-23 01:51 willaty 阅读(120) 评论(0) 推荐(0)

leetcode 66 Plus One
摘要:给定一个数组,表示整数的各个位数,现要将其加上1,考虑进位。 思考: 其实也有最后用insert的,其实insert代价也是O(n),需要后移。 也想过判定全是9可以放在for前面,考虑正常情况下全9出现较少,放后面效率好点,概率,:-) 阅读全文

posted @ 2018-01-23 00:58 willaty 阅读(131) 评论(0) 推荐(0)

leetcode 38 Count and Say
摘要:描述: 规则有点奇怪,第n个数 数出上个数的位。 如3122,表示上个数有3个1,2个2,即11122。 现定义: 1为1 2为11,表示1个1 3为21,表示2个1 4为1211,表示1个2,1个1 解决: 注意其中出现的push_back和move! 原本用+号和赋值,效率真的慢,为8ms左右。 阅读全文

posted @ 2018-01-22 18:32 willaty 阅读(129) 评论(0) 推荐(0)

leetcode 35 Search Insert Position
摘要:将一个整数插入一个已排序数组,如果已存在则返回其索引。 二分查找。 阅读全文

posted @ 2018-01-22 14:11 willaty 阅读(165) 评论(0) 推荐(0)

leetcode 28 Implement strStr()
摘要:实现子串索引,不存在则返回-1。 这里仅用朴素的字符串查找。 阅读全文

posted @ 2018-01-22 13:05 willaty 阅读(123) 评论(0) 推荐(0)

leetcode 27 Romove element
摘要:描述: 删除指定元素。不是真的删除,要求把不符合的元素前移。 解决: 非常简单。 阅读全文

posted @ 2018-01-22 12:50 willaty 阅读(132) 评论(0) 推荐(0)

leetcode 26 Remove Duplicates from Sorted Array
摘要:描述: 去除重复的元素。注意要求,要在原vector的基础上操作,并返回去重后长度。即将不重复的元素往前移。 解决: 比较当前与上一个即可。 阅读全文

posted @ 2018-01-22 11:54 willaty 阅读(92) 评论(0) 推荐(0)

leetcode 21 Merge Two Sorted Lists 合并两个有序链表
摘要:描述: 合并两个有序链表。 解决: 阅读全文

posted @ 2018-01-22 11:02 willaty 阅读(111) 评论(0) 推荐(0)

leetcode 20 Valid Parentheses 有效的括号
摘要:描述: 给定一些列括号,判断其有效性,即左括号有对应的有括号,括号种类只为小,中,大括号。 解决: 用栈。 阅读全文

posted @ 2018-01-22 10:03 willaty 阅读(107) 评论(0) 推荐(0)

leetcode 14 最长公共前缀
摘要:描述: 给个字符串vector,求最长公共前缀。 解决: 直接取第一个字符串作为最长公共前缀,将其每个字符遍历过一次。设最长字符实际为k,共n个元素,则复杂度O(nk) 阅读全文

posted @ 2018-01-22 09:47 willaty 阅读(2745) 评论(0) 推荐(0)

leetcode 13 Roman to Integer 罗马数组转整型
摘要:描述: 将一个字符串表示的罗马数字转为整数,范围0~3999 解决: 如果后一个比前一个大,则表示减,没什么技巧。 阅读全文

posted @ 2018-01-22 00:28 willaty 阅读(178) 评论(0) 推荐(0)

leetcode 9 Palindrome Number 回文数
摘要:描述: 判定一个整数是否回文数(注意,负数必定不是回文数,由于是根据读音来判断的)。 要求空间复杂度O(1)。 解决: 一:直观的思路是一个一个对比。 二:反转整数,当反转到反转的数已经大于被反转数时,可判断是否回文。 显然二效率高。 阅读全文

posted @ 2018-01-21 23:50 willaty 阅读(168) 评论(0) 推荐(0)

leetcode 7 reverse integer 反转整数
摘要:描述: 给定32位整数,反转,如321转成123。 解决: 关键是溢出检测: 看了下其他答案,还有一些思路: 先声明个long,看最后是否溢出,这样只有long是64位时可以,或者用int64_t。 还有先转字符串反转再转数字的。 阅读全文

posted @ 2018-01-21 21:55 willaty 阅读(148) 评论(0) 推荐(0)

leetcode 1 A+B problems
摘要:描述: 给个数组和整数t,一串整数中,存在两个数其和等于t,求这两个数的索引。 解决: 想要快,用个哈希储存曾经出现过的数的索引。 阅读全文

posted @ 2018-01-18 18:43 willaty 阅读(177) 评论(0) 推荐(0)

leetcode 121 股票买卖问题系列
摘要:描述: 给一些列数字,表示每条股票的价格,如果可以买卖一次(不能同一天买和卖),求最大利益(即差最大)。 其他三道问题是,如果能买卖无限次,买卖两次,买卖k次。 题一: 实质是求后面一个数减前一个数的最大差值。 维护一个最小值,和当前最大值。只需遍历一次,空间也是常数。 题二: 只要是后一个数比前一 阅读全文

posted @ 2018-01-18 17:11 willaty 阅读(3734) 评论(0) 推荐(0)

leetcode 204 count prim 数素数
摘要:描述: 给个整数n,计算小于n的素数个数。 思路: 埃拉托斯特尼筛法,其实就是普通筛子,当检测到2是素数,去除所有2的倍数;当检测到3是素数,去除其倍数。 不过这要求空间复杂度为n,时间复杂度为n。 解决: 有几个注意的地方。 1. no数组用new,不要用vector,由于操作简单。 2. 更新时 阅读全文

posted @ 2018-01-12 17:53 willaty 阅读(154) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 下一页

导航