
算法
文章平均质量分 66
FourFatCats
随笔集中地
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
状态机思路解决动态规划问题
这个状态机是我理解上的状态机,即:在设计算法的时候不只是专注于其中的数字逻辑,因为数字逻辑虽然易于抽象,但是有时会付出极大的时间消耗。而使用状态机的思路可以增加内存来存储状态进行演绎,但是能够大幅度减少时间消耗例子:一个击鼓传花的问题:学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主...原创 2018-02-25 13:07:47 · 2002 阅读 · 1 评论 -
“双指针”法解决链表问题
背景:单链表问题由于顺序遍历的特性,有时候执行一些操作的时候会出现问题看似需要多次遍历才能获取数据。使用双指针法能在一次遍历中获取更多的数据,也可以节约更多的额外控件。 “双指针”就是用一个快指针一个慢指针同时进行单链表的顺序扫描。如此就可以使用快指针的时间差给慢指针提供更多的操作信息。下面是两个LeetCode下的习题。(1)给定一个链表,删除链表的倒数第 n 个节点并返回头结点。...原创 2018-04-02 22:14:51 · 2026 阅读 · 0 评论 -
计算小于n的质数个数 方法总结
背景:统计质数个数是很基础的问题了,但是在n非常大的时候,不够快速的算法就会卡到效率瓶颈,下面是5个不同复杂度的算法。(1)暴力解法(2)缩小范围(3)数论引入(4)欧拉解法(5)最快解法1. 暴力解法:直接挨个去看是不是质数,判断质数的方法就看是不是能够被1和自身之外的整数整除class Solution: def countPrimes(self, n): """ ...原创 2018-04-04 15:14:24 · 15680 阅读 · 0 评论 -
多个方法 LeetCode 有效三角形的个数
背景:这个题目解法是利用排序降低复杂度的一个例子给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是: 2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。分析:三角形的条件:第三边大于两边差,小于两边之...原创 2018-04-17 19:06:54 · 4988 阅读 · 0 评论 -
LeetCode 字符串解码 堆栈应用
背景:数据结构中的堆栈在以往的工作和学校里都没有怎么用过,但是这个算法如果在需要的场合中使用能够发挥非常大的作用,下面是一个LeetCode中的题目和解法。题目:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没...原创 2018-04-28 11:28:48 · 1792 阅读 · 0 评论