LeetCode
一只安静的猪
这个作者很懒,什么都没留下…
展开
-
LeetCode 166: Fraction to Recurring Decimal
LeetCode 166: Fraction to Recurring Decimal这里有两段代码,思路基本一致,都为深度优先搜索。代码一先进行递归,再在函数中判断是否符合条件;代码二先判断是否符合条件,再进行递归。但是代码二在大数据时超时,还没发现原因。代码一import java.util.Hashtable;public class Solution { public String原创 2016-05-26 11:25:55 · 234 阅读 · 0 评论 -
LeetCode 213: House Robber II
LeetCode 213: House Robber II思路在House Robber题的基础上分两种情况:nums[0]未被打劫;nums[0]被打劫;代码public class Solution { public int rob(int[] nums) { int length = nums.length; if (length == 0) re原创 2016-05-26 14:58:09 · 227 阅读 · 0 评论 -
LeetCode 198: House Robber
LeetCode 198: House Robber思路这题基本思路还是动态规划,对第i个房子如果不打劫其最大金额为max[i - 1];如果打劫,则第i - 1个房子不能打劫,最大金额为nums[i] + max[i - 2];代码一public class Solution { public int rob(int[] nums) { int length = nums.原创 2016-05-26 11:29:23 · 173 阅读 · 0 评论 -
LeetCode 208: Implement Trie (Prefix Tree)
LeetCode 208: Implement Trie (Prefix Tree)思路使用HashMap存储后代,节省空间;需要设定一个boolean值来表示是否该节点为一个单词的结束;代码class TrieNode { // Initialize your data structure here. public HashMap<Character,TrieNode> ma原创 2016-05-26 16:28:21 · 227 阅读 · 0 评论 -
LeetCode 60: Permutation Sequence
LeetCode 60: Permutation Sequence算法思路已知以每个数字开头的序列数为(n - 1)!,根据(k - 1) / (n - 1) ! + 1可以知道第一个数字是几,然后递归,求出之后的数字;算法中数组flag记录数字是否被使用,factorials记录阶乘值,如果在递归函数中直接求阶乘会导致超时;每次递归n的值会减1,递归终止的条件即n为0,此外k的值变为k - pos原创 2016-04-04 14:30:47 · 235 阅读 · 0 评论 -
LeetCode 55: Jump Game
LeetCode 55: Jump Game算法一思路(1)假定用start出发,用next记录从[start + 1, end]出发能到达的最远距离; (2)更新start和end; (3)如果next和end相等,表明不能继续,返回false;代码public class Solution { public boolean canJump(int[] nums) {原创 2016-05-30 19:23:09 · 235 阅读 · 0 评论 -
LeetCode 133: Clone Graph
LeetCode 133: Clone Graph思路需要考虑自环和两个节点有多条边的特殊情况,这种情况下,不能生成新的节点,而是引用已有节点;利用Hashtable记录已经存放的节点;代码import java.util.Hashtable;public class Solution { public UndirectedGraphNode cloneGraph(Undirecte原创 2016-06-07 12:41:25 · 216 阅读 · 0 评论 -
LeetCode 79: Word Search
LeetCode 79: Word Search程序有std输出时会耗时,Leetcode代码中要注释掉调试的std输出语句。原创 2016-05-16 10:50:56 · 207 阅读 · 0 评论