
leecode----java
呼噜娃娃
生活没有偶然
展开
-
138. Copy List with Random Pointer
package leecode;import java.util.HashMap;import java.util.Map;/** * Created by root on 17-6-15. *///Definition for singly-linked list with a random pointer.class RandomListNode { int labe原创 2017-06-15 23:28:58 · 229 阅读 · 0 评论 -
41. First Missing Positive
/*时间复杂度有要求的,首先就是考虑用hashmap之类的数据结构,可以实现o(1)的查找速度题目的要求是找到不连续的第一个正数,因此,我们需要将所有的数防盗map的key中,然后从1开始往后找,找第一个间断的位置。极端情况下,数组内都是正数,且有序,返回max+1 */public int firstMissingPositive(int[] nums) { Map,Integ原创 2017-06-14 23:09:41 · 210 阅读 · 0 评论 -
12. Integer to Roman
/*第二种是递归的方法,思路都是就是从大到小判断拆分,从前向后添加罗马数字递归提交的时候出现超时现象关键是理解罗马数字的组成方式,有几个临界点需要额外提取,其他的重复添加即可可以百度以下罗马数字的组成方式。 */public String intToRoman(int num) { String str = ""; String [] symbol = {"M原创 2017-06-13 23:09:06 · 213 阅读 · 0 评论 -
13. Roman to Integer
/*思路就是,扫描一遍,先全部加到一起,然后再扫描一边,看一下左侧比右侧小的部分,就减去它的两倍(因为被多加了)还可以扫描的时候直接判断左侧和右侧的大小,小的话加-大的话+ */public int romanToInt(String s) { char[] chars=s.toCharArray(); int sum=0; for(int i=0;ilength;原创 2017-06-13 22:45:05 · 238 阅读 · 0 评论 -
89. Gray Code
/*Int Grey Code Binary 0 000 000 00^000 i=0将数字i右移一位,再与i异或运算 1 001 001 00^001 i=1将数字i右移一位,再与i异或运算 2 011 010 01^010原创 2017-06-12 21:24:17 · 252 阅读 · 0 评论 -
65. Valid Number
import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by root on 17-6-12. */public class Solution { public boolean isNumber(String s) { s = s.trim(); i原创 2017-06-12 20:47:17 · 251 阅读 · 0 评论 -
130. Surrounded Regions
/*针对这个问题:1首先如果row,col都是小于2,返回。2挑选出四个方向边界处为O的进行DFS遍历操作对于DFS函数,注意四个方向遍历的条件对于遍历到的O转换成*最后主函数处理,如果是*则变为O,如果是O说明没有遍历到,则变为X */public static void solve(char[][] board){ if(board.length2||board[0].le原创 2017-06-11 18:26:32 · 216 阅读 · 0 评论 -
151. Reverse Words in a String
/*这个题目的坑在于,两个单词中间可能有多个空格,单词前面后面也可能有多个空格。因此单纯的用split进行分割,会分出很多的"",这个时候需要进行判断,如果是"",就放到一个动态数组动态数组java中就会考虑用list,另外join方法也可以提供很大的方便。 */public String reverseWords(String s){ String[] news=s.split(原创 2017-06-11 16:46:32 · 215 阅读 · 0 评论 -
42. Trapping Rain Water
package leecode;/** * Created by root on 17-6-16. */public class TrappingRainWater { /* 这个题的核心在于比对左侧最大和右侧最大,如果左侧最大小于右侧最大,左侧的右临才有灌水的可能,还要取决最大值的位置是否是当前访问的位置。 因此,加入的水就等于max与当前bar的差值,这个值最原创 2017-06-16 23:33:32 · 264 阅读 · 0 评论 -
135 Candy
package leecode;import org.junit.Test;/** * Created by root on 17-6-15. */public class Candy { //1 3 3 5 4 3 2 1 //1 1 1 1 1 1 1 1 //1 2 1 2 1 1 1 1 //1 2 1 5 4 3 2 1 /*原创 2017-06-16 00:06:54 · 247 阅读 · 0 评论 -
133. Clone Graph
/*图的复制,考虑到一点就是如果label相同时认为是同一节点,环的存在,因此是不可以再new,为了保证时间,用hashmap会比较快 */Map,UndirectedGraphNode> hashMap=new HashMap();public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { if(node==原创 2017-06-14 23:32:24 · 250 阅读 · 0 评论