随笔分类 - 每周算法练习
摘要:"LeetCode 145"
阅读全文
摘要:"LeetCode 144 " 题目的意思就是不用递归的方法输出先序遍历 其实递归本质上是在利用栈的性质,每次递归都是将一个函数压入栈中。 所以我们可以用循环和栈模拟递归
阅读全文
摘要:"LeetCode 143" 这道题目我真是无语。 不知道判题程序是怎么判断 的。 下面我贴出我的测试程序,两个解决方案,经过10次测试,消耗的时间. 方案1 是 的方案,方案2 是 的方案 代码 测试结果: 根本就没什么差距,可是LeetCode 偏说方案一是超时的,就好像它是通过你的代码来判断是
阅读全文
摘要:"LeetCode 142" 每遍历一个点,都要判断起点到这个点的距离,和启动点到这个点的next的距离。再比较一下就可以了。
阅读全文
摘要:LeetCode 141 不花费额外的空间 方法很简单,遍历一遍即可,在遍历过的节点,都改变它的一个状态。如果形成环,会再次指向遍历过的节点,这个时候判断它的状态是否改变。 这个方法是可以被测试数据攻击掉的,不是完美解决方案。 ``` class Solution {public: bool has
阅读全文
摘要:[LeetCode 140. Word Break II](https://leetcode.com/problems/word-break-ii/description/) 在上一道的动态规划的基础上,使用DFS打印路径。 在DFS的过程,需要记录下路径,这样就不会超时了。 100ms 已经算是个
阅读全文
摘要:"LeetCode 139. Word Break" 我使用的方法是区间DP
阅读全文
摘要:"LeetCode 138. Copy List with Random Pointer" 又是copy 指针的题目。 这个和上一道题目有个坑点,函数中的参数要加&地址符。
阅读全文
摘要:"LeetCode 136 Single Number " 位运算。 异或运算 ^ ^ 两次,将返回初始状态,因为^ 实际上是在做取反的动作
阅读全文
摘要:"LeetCode 135 Candy" 思路: 将数组排序。然后根据值从小到大,在数组中依次标记值。 c++
阅读全文
摘要:"LeetCode 134 Gas Station" 水题,暴力一下就ok
阅读全文
摘要:"LeetCode 133 Clone Graph" 题目的意思是,给你一个图,你给他返回一个复制的图。 所有的节点你都需要自己New 而不能用他给的参数赋值,因为那是个指针。 每个节点的label都是唯一的,由于存在环,防止无限递归,可以用map将创建的节点存起来。 c++
阅读全文
摘要:"LeetCode 132 Palindrome Partitioning II " 思路,和上一题一样,先将所有回文串取出。 然后用BFS,找到最小的切割数就可以。 因为没有要求输出字符串,所以结构体中的string 属性可以去掉,防止内存超限。 c++
阅读全文
摘要:"LeetCode 1004 " 思路 一开始我用快速排序将两个数组重新排序,居然超时。 其实两个已经排好的数组用一个for循环排序就好了,效率O(m+n) ,而快排是O((m+n) log(m+n)) 但是题目上给的是O(log(m+n))的效率,应该是把O(m+n)都放过了。 class Sol
阅读全文
摘要:"LeetCode 131 Palindrome Partitioning" 划分字符串,得到每一个子串都是回文串,输出所有的方案。 思路是,先将所有的回文子串都找出来,记录下左右端点。 然后DFS这些子串就可以了。
阅读全文
摘要:"题目 LeetCode 130" 题解: 使用并查集解决 AC代码(c++)
阅读全文
摘要:"题目 LeetCode 129 Root to Leaf Numbers" 水题
阅读全文
摘要:"题目LeetCode 128" 水题一枚
阅读全文
摘要:[题目 LeetCode 127] (https://leetcode.com/problems/word ladder/description/) 题解: BFS struct Node { string word; int dis; Node(){} Node(string word,int d
阅读全文
摘要:"题目 LeetCode 126" 题解: 具体的思路是,分别从起始和结束字符串出发两遍BFS, 得到每个点到起始字符串的最短距离和终点字符串的最短距离。 然后再从起始字符串出发,DFS 寻找路径。由于已经通过BFS得到每个点到两端的最短距离,所以DFS寻找路径可以很大程度的剪枝,从而防止了超时。
阅读全文
浙公网安备 33010602011771号