排序:
默认
按更新时间
按访问量

LeetCode - 208. Implement Trie (Prefix Tree)

https://leetcode.com/articles/implement-trie-prefix-tree/ 知识点: 1. 新的数据结构,非常有用,记一下

2016-07-22 22:12:59

阅读数:244

评论数:0

LeetCode - 299. Bulls and Cows

我们可以使用一个HashMap来记录character和其出现的次数,如果secret.charAt(i) == guess.charAt(i),那么bull++;如果secret.charAt(i) != guess.charAt(i)的时候,secret扫过数字,相应的count加一,gues...

2016-07-22 13:29:34

阅读数:213

评论数:0

LeetCode - 328. Odd Even Linked List

这道题目的思路同样也比较巧妙,在这道题目的解法中,我们并不是一个一个地去移动node,而是分别将odd nodes和even nodes串成两个Linked List,然后再将odd list尾部的next结点指向even nodes结点的头部即可,图片分析如下: 代码如下: /** ...

2016-07-22 11:50:51

阅读数:224

评论数:0

LeetCode - 304. Range Sum Query 2D - Immutable

前面已经做过一道Range Sum Query - Immutable的题目,当时我们采用的方法是新建一个数组存储nums中从0到当前index的元素的和,这样在sumRange方法中我们可以在O(1)的时间中得到结果,在题目要求的sumRange多次调用的情况下非常方便。 这里我们同样想要采用...

2016-07-22 11:39:04

阅读数:484

评论数:0

LeetCode - 225. Implement Stack Using Queues

题目要求使用Queue来实现Stack,我们都知道Queue是FIFO,而Stack是FILO,为了解决这个问题,我们只要在add元素进Queue的时候把之前加进去的元素都poll出来然后再重新add进Queue即可,这样就是实现了FILO的操作。具体的函数实现见下面: 整体的代码如下:...

2016-07-22 11:33:33

阅读数:503

评论数:0

LeetCode - 292. Nim Game

这道题目只要仔细思考分析问题的规律,就可以发现解题的方法: 代码如下: public class Solution{ public boolean canWinNim(int n){ return n % 4 != 0; } }

2016-07-22 00:03:27

阅读数:329

评论数:0

LeetCode - 150. Evaluate Reverse Polish Notation

我们都知道计算逆波兰表达式需要使用Stack,所以这道题目要使用一个Stack数据结构:我们把遇到的数字push进stack里面,而每次遇到四种运算符号的时候,我们就把相应的运算数pop出stack,而在计算之后再将结果push进stack。最后stack中剩下的就是整个运算的结果,pop出即可,...

2016-07-21 22:59:32

阅读数:224

评论数:0

LeetCode - 147. Insertion Sort List

Insertion Sort的思想是逐步将后面的元素插入到前面相应的位置中来,知道了Insertion Sort的这个思想,我们可以将这种方法用到Linked List上面。另外,由于Linked List的头部或许发生改变,所以我们需要使用dummyNode。 总的来说,在这道题目中,我们使用了...

2016-07-21 22:51:20

阅读数:430

评论数:0

LeetCode - 151. Reverse Words in a String

第一种方法是使用Java的内置方法,非常巧妙,代码如下: public class Solution { public String reverseWords(String s) { if(s == null || s.length() == 0) return s; ...

2016-07-21 22:33:56

阅读数:288

评论数:0

LeetCode - 143. Reorder List

这道题目总的来说可以分三步,第一步是找到Linked List的中点,第二部是翻转Linked List的后半部分,第三部就是把Linked List按照题目的要求进行reorder,现在大的思路已经明确,接下来我们所需要的就是思考这三步怎样实现。 1->2->3->4->...

2016-07-21 22:14:27

阅读数:295

评论数:0

LeetCode - 303. Range Sum Query - Immutable

这道题目让实现一个方法计算数组中两个index之间的数字的和,看似非常简单,只要把之间所有的数字加起来即可。但是题目中给出的一个note是这个方法会调用很多次,所以我们希望找到一种在时间复杂度上更加有效的方法。 我们可以另外申请一个数组,数组从index为1开始,都是num[i] + nums[i...

2016-07-21 22:01:55

阅读数:209

评论数:0

LeetCode - 284. Peeking Iterator

在已有的类的基础上实现功能更为强大的一个子类,这时我们可以把父类作为子类的一个attribute,通过这个attribute来使用父类的一些methods(对于这道题目是implements interface)。 既然这道题目要求实现的方法都与下一个有关,我们可以使用一个指针指向下一个需要返回...

2016-07-21 21:45:33

阅读数:158

评论数:0

LeetCode - 134. Gas Station

首先我们经过思考可以发现这道题目有两个性质: 1. 如果从A点没有办法到达B点,那么从A和B之间的任何点出发都无法到达B点 2. 如果circle中总的gas大于总的cost,那么一定会存在一个解 根据以上的思路,我们可以写程序。首先假设从index为0的地方开始出发,在每一次模拟走向下一个...

2016-07-21 21:35:25

阅读数:121

评论数:0

LeetCode - 160. Intersection of Two Linked Lists

代码如下: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * ...

2016-07-21 12:40:42

阅读数:203

评论数:0

LeetCode - 162. Find Peak Element

题目中给出了一个很重要的假设,就是数组左侧左边和右侧右边的数都是负无穷大,所以我们可以采用一个很方便的算法进行计算。 我们从index为1的时候开始扫描整个数组,比较nums[i]和nums[i - 1]的大小,如果nums[i]比较小的话,那么nums[i - 1]就是peak element...

2016-07-21 11:38:28

阅读数:152

评论数:0

LeetCode - 165. Compare Version Numbers

比较两个版本号的大小,首先自然是把两个String以"."分离开来,然后对它们一个一个进行比较。注意当其中的一个版本号长度比较小的时候,就在比较中将它设置为0,整体的代码如下: public class Solution { public int compareVer...

2016-07-21 11:30:39

阅读数:178

评论数:0

LeetCode - 172. Factorial Trailing Zeroes

注意可能的重复出现,上面解释的不是很清楚,比如说25,25 = 5 * 5,而25中的这个5已经在n / 5的时候已经计算过一次,所以只要计算n / 25即可;下一个125中是3个5相乘,而其中两个5已经计算过了,所以这时只要计算n / 125即可。整体的代码如下: public class S...

2016-07-20 22:50:51

阅读数:218

评论数:0

LeetCode - 173. Binary Search Tree Iterator

要求实现Binary Search Tree的hasNext()和next()操作,最小的元素自然是从root开始一直找左子树左子树直到为空,这是我们找到了我们需要的第一个元素,但是接下来的元素怎么办呢?Binary Search Tree又没有回退的指针,就没办法了,这样是不行的,所以我们必然要...

2016-07-20 22:20:42

阅读数:141

评论数:0

LeetCode - 171. Excel Sheet Column Number

这道题目是上一道题目LeetCode - 168. Excel Sheet Column Title相反,是把字符串转化为相对应的数字。通过上道题目的分析和答案我们可以发现,我们只要把每个字符转化为相应的数字,乘以26,然后再继续转化下一个字符即可。 注意与上道题目一样,这道题目也有一个小的陷阱...

2016-07-20 22:10:19

阅读数:199

评论数:0

LeetCode - 168. Excel Sheet Column Title

我们可以注意到以下几点: (char)(n % 26 + 'A')得到的是转化后的第一个元素 n /= 26得到的是转化出最右边的一个字符之后剩下的需要转化的数字 所以我们可以重复上面的步骤直到n = 0,代码如下: public class Solution { public S...

2016-07-20 22:00:04

阅读数:159

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭