- 博客(6)
- 收藏
- 关注
原创 [leetcode]House Robber 分享一个很easy的解法
题目:求数组不连续的最大值组合 思路:DP,开两个int,不断地比较连续位的最大值,附上源码: public class Solution { public int rob(int[] nums) { if (nums.length == 0){ return 0; } int a = 0;
2016-03-01 07:56:42
283
原创 [leetcode]ZigZag Conversion
题目:之字形字符串转换 思路:由于是之字形走法,可以创建一个长度为numRows的字符串数组,对原字符串中每个字符依次加到每个字符串后面,要注意的是先写卫方法,将numRows大于字符串长度和numRows为1的情况排除,然后写接下去的算法,同时要注意开辟新数组,每个字符串都会先赋null,因此要将这种情况排除掉,附上源码: public class Solution { publi
2016-02-25 12:39:34
248
原创 树和递归(一)[leetcode]Balanced Binary Tree
结合leetcode上的一些题,谈谈自己对树和递归的一些看法。 递归对喜欢简短代码的人来说是一种福利,递归一般分为从上往下和从下往上两种递归方法,拿最经典的斐波那契数列来说,要求f(n)的值,可以从f(n)往下推,f(n-1),f(n-2)...,这种方式很直观,但由于重复计算相同元素,所以在时间复杂度上是指数型增长,就个人所知道的情况而言,从上往下的时间复杂度不会优于从下往上的时间复杂度,故遇
2016-02-21 15:04:33
296
原创 两个队列实现一个栈[leetcode]Implement Stack using Queues
题目:用队列实现栈的功能 思路:队列和栈的主要区别在于元素的进出顺序,当执行pop/top操作的时候,相当于将一个队列中的所有数据(除了最下面的元素)都倒出来,只剩最后一个元素,这个元素就是我们要取得元素,这里使用两个队列,push和empty方法都很容易完成,pop和top方法本质上是一样的,首先我们要保证至少一个队列是空的,当使用pop/top方法的时候,先将有元素的队列除了最后一个元素一个
2016-02-19 13:54:19
628
原创 HashMap 实例[leetcode]Longest Consecutive Sequence
HashMap的一些方法: HashMap map = new HashMap(); 1、提取map中key对应的value值:value = map.get(key); 2、放入新的元素:map.put(key,value); 注:HashMap中不允许出现重复的key值,所以当put进重复的key时,会覆盖原有的值 3、删除元素:map.remove(key); 3、检查map中是否
2016-02-19 09:57:05
456
原创 ArrayList的一些方法
ArrayList的几个方法: ArrayList list = new ArrayList(); 注:文中提到的位置都是从0号位置开始 1、add: list.add("a"); //在表尾插入"a"元素 list.add(1,"a"); //在1号位置插入"a"元素,原表中1号位置往后元素全部往后移动1个位置 list1.addAll(list2); //在list1表尾插入
2016-02-17 13:50:52
311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人