LeetCode趣题
来源:互联网 发布:淘宝客服数据在哪看 编辑:程序博客网 时间:2024/06/07 04:03
本帖以收录LeetCode上面有趣的题目及其解法为目的。
- Gas Station
- 一上来想到的肯定是模拟,结果必然是O(n^2),运气够好的话不会超时,但~700ms的结果是必然的了。
- O(n)的解法是有的,类似动归,从头开始遍历到底,记录gas和cost总量的差和每一站gas和cost的差距。
- 如果<0,必然无解;
- 否则的话,有解而且可能不止一个:每站差距里面cost比gas多的最多的那一站的下一站做起点必然是个可行解。
- 运行时间在15ms左右。
- Copy List With Random Pointer
- 笨办法:当创建新的节点的时候,记住原来节点里的random指向的节点距离头或者尾的距离,然后在新链表里从头再遍历一遍,把random的指向给加上。此做法一定会TLE。
- 改进的笨办法:记录距离的时候弄个字典,key是距离,value是所有指向这个距离的节点。这样加random那一步能快一些。不会TLE,但时间大的吓人,>1000ms。
- 好办法:创建新节点的时候把它插入到原有节点的后面,创建了所有节点以后再遍历一次,把random加上,原来的节点对应的新节点,它的random是原来节点random的next。所以一次就搞定了所有的random值。最后再遍历一次,把两个链表剥离开,返回新的那个即可。
0 0
- LeetCode趣题
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- Python 3.3 Tutorial Notes - 7:Class
- Python 3.3 Tutorial Notes - 8:Standard Libraries - Briefly
- 贪心法
- 动态规划
- 一句话Design Pattern:Bridge
- LeetCode趣题
- 资源收藏贴
- 单链表的基本操作-数据结构
- 小马哥----高仿小米note主板H79 型号 刷机拆机主板图与开机界面图 新版机型 警惕
- webdriver cookie 处理 selenium_python
- webservice的简单理解
- leetcode笔记:Single Number
- 只含0、1的串进行排序,可任意交换位置,最小交换次数
- C++ STL set::find是如何判断两个元素相等的