摘要:题目链接 题目大意:给出一个字符串,将其划分,使每个子串都是回文串,计算处所有可能的划分情况。 法一(借鉴):很明显的,是要用DFS。这个可以作为一个模板吧,就是划分字符串的所有子串的一个模板。代码如下(耗时9ms): 1 public List<List<String>> partition(St
阅读全文
摘要:题目链接 题目大意:一个circle圆环,第i个位置,有汽油gas[i],而汽车从i到i+1,需要汽油cost[i]。求解,从哪个位置开始,汽车能走完圆环。如果走不完则返回-1,能走完则返回index。例子如下: 法一:两个for循环。直接求解每个可能的起始位置,然后计算能否在有汽油的情况下,走完全
阅读全文
摘要:题目链接 题目大意:分糖果,每个小朋友都有一个ratings值,且每个小朋友至少都要有一个糖果,而且每个小朋友的ratings值如果比左右邻舍的小朋友的ratings值高,则其糖果数量也比邻舍的小朋友多。 法一:超时。按照要求,从前往后比较每个小朋友的ratings值,如果后一个小朋友的rating
阅读全文
摘要:题目链接 题目大意:对链表进行插入排序。 解法:直接插入排序。代码如下(耗时40ms): 1 public ListNode insertionSortList(ListNode head) { 2 ListNode first = new ListNode(0); 3 ListNode pre =
阅读全文
摘要:题目链接 题目大意:对链表进行排序,要求时间复杂度是o(nlgn)。 法一:冒泡,不交换结点,而交换结点中的数值。超时了。代码如下: 1 public ListNode sortList(ListNode head) { 2 if(head == null || head.next == null)
阅读全文
摘要:题目链接 题目大意:计算逆波兰表达式的值。 法一:stack,用stack存数,遇到操作符,则运算。代码如下(耗时12ms): 1 public int evalRPN(String[] tokens) { 2 Stack<Integer> s = new Stack<Integer>(); 3 f
阅读全文
摘要:题目链接:https://leetcode.com/problems/minimum-depth-of-binary-tree/description/ 题目大意:求解二叉树的最小高度。 法一:BFS。新写一个class,承接TreeNode和当前结点高度。代码如下(耗时6ms): 1 static
阅读全文
摘要:题目链接:https://leetcode.com/problems/wildcard-matching/description/ 题目大意:通配符匹配,与第10题的正则匹配类似,规则有所区别。'?'可以代替任意一个字符,'*'可以代替任意一个字符串。 法一(借鉴):略难,不是特别懂。解释:http
阅读全文
摘要:题目链接:https://leetcode.com/problems/sqrtx/description/ 题目大意:实现求平方根。 法一:直接库函数。代码如下(耗时39ms): 1 public int mySqrt(int x) { 2 double res = Math.sqrt(x); 3
阅读全文
摘要:题目链接:https://leetcode.com/problems/implement-strstr/description/ 题目大意:字符串匹配,从字符串中,找到给定字符串第一次出现的位置下标,并返回。 法一:暴力,两个for循环,逐一比较每一个可能的字符串,一旦找到,则返回。代码如下(耗时5
阅读全文
摘要:题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/ 题目大意:删除有序数组中重复的数值。 法一:利用27题的法一,保留不重复的值,记录留下的数组值的下标。代码如下(耗时13ms): 1
阅读全文
摘要:题目链接:https://leetcode.com/problems/remove-element/description/ 题目大意:给出一个数组和一个值,从数组中删除与当前值相等的值,并将数组长度返回,最终数组中元素的顺序可以不保持原顺序,也就是允许排序。 法一:反向思考,不直接删除值,而是将不
阅读全文
摘要:题目链接:https://leetcode.com/problems/longest-common-prefix/description/ 题目大意:找出字符串数组的最长公共前缀。与 法一:竖向比较,也就是对于每个字符串,都对应的比较对应下标的字符,一旦不等,则公共前缀到此结束。代码如下(耗时12m
阅读全文
摘要:题目链接:https://leetcode.com/problems/maximum-product-of-three-numbers/description/ 题目大意:从一个数组中选取三个数,使其乘积最大。 法一:直接排序后取最大值即可。代码如下(耗时30ms): 1 public int ma
阅读全文
摘要:题目链接:https://leetcode.com/problems/maximum-product-subarray/description/ 题目大意:给出一串数组,找出连续子数组中乘积最大的子数组的乘积。 法一:暴力。竟然能过,数据也太水了。两个for循环,遍历每一个可能的连续子数组,找出最大
阅读全文
摘要:题目链接:https://leetcode.com/problems/decode-ways/description/ 题目大意:将给出的字符串解码,问有多少种解码方式。解码按照“ABC...Z"->1,2,3...26进行。比如”12“有两种解码方式:1 2(A B),12(L)。 法一(借鉴):
阅读全文
摘要:题目链接:https://leetcode.com/problems/insert-interval/description/ 题目大意:给处一个list,里面是按start排好序的非重叠区间,插入一个区间,将重叠区间合并。可见56题。 法一(借鉴):不用排序直接比较更新。由于初始就是排好序的非重叠
阅读全文
摘要:题目链接:https://leetcode.com/problems/merge-intervals/description/ 题目大意:给出一串list,里面装interval类,这个类里有start和end两个属性,表示起始点和结束点,如果前面interval的结束点>后面interval的起始
阅读全文
摘要:题目链接:https://leetcode.com/problems/spiral-matrix-ii/description/ 题目大意:构造蛇形矩阵。 法一:模板模拟。代码如下(耗时2ms): 1 public int[][] generateMatrix(int n) { 2 int[][]
阅读全文
摘要:题目链接:https://leetcode.com/problems/spiral-matrix/description/ 题目大意:给一个数组,蛇形存入list后返回。 法一:模板模拟,注意的是这里给的数组,不一定是n*n的,所以要根据行和列分别计算。代码如下(耗时3ms): 1 public L
阅读全文