文章分类 -  Leetcode们

1 2 3 4 5 ··· 9 下一页
记录自己Leetcode,Lintcode,牛客或其他一些数据结构算法题的解题思路和心路历程
摘要:这题开始只想到了用dp,但是没有总结出规律来,辣鸡辣鸡。 其实思路不难的: 不妨设dp[i]表示,用[1,i]的数建BST的可行数量。f(j,i)表示以j为根节点,用[1,i]的数构建BST的可行树数量。 我们用1 n的数构建BST(binary search tree)时,会依次用[1,n]的数作 阅读全文
posted @ 2019-06-01 16:37 大胖子球花 阅读(115) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/monster_girl/article/details/52928864 在学习完位操作后,经常会遇到一类关于查找缺失整数的问题。 第一类是给你一个数组,告诉你这些数字的范围是什么,然后让你查找这个缺失的数字(例如无序数组的范围是从1到10,不重复 阅读全文
posted @ 2019-04-30 10:46 大胖子球花 阅读(747) 评论(0) 推荐(0)
摘要:反转链表的题没啥难的,就是多弄几个指针,别断链丢节点就行。 / Definition for singly linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } / cl 阅读全文
posted @ 2019-04-23 16:22 大胖子球花 阅读(53) 评论(0) 推荐(0)
摘要:这题题意稍稍有些不够明确。比如,遇到"01","80"等无法编码的,其实是返回0的。 想到了用dp,但是写的不太简洁,参考Solution,写一个简洁版: public class Solution { public int numDecodings(String s) { if(s == null 阅读全文
posted @ 2019-04-23 15:42 大胖子球花 阅读(66) 评论(0) 推荐(0)
摘要:开始想的暴力解法,dfs一下,但是觉得不够简洁,应该是有简洁的方法的。一看discuss果然: 方法一:正常思路,找规律 观察: n=2: 00,01,11,10 n=3: (000,001,011,010),(110,111,101,100) 可以看出,我们可以由n 1得到n,方法就是,前面的不变 阅读全文
posted @ 2019-04-23 10:38 大胖子球花 阅读(76) 评论(0) 推荐(0)
摘要:这题和 "Leetcode33. Search in Rotated Sorted Array" ,为同一系列,只是多了重复元素。所以思想一致,都是先判断那边是有序的,哪边会包含rotated。然后判断target是否在有序一遍,不在的话去另一边找找看。 多了重复元素,比如34333,无法判断应该往 阅读全文
posted @ 2019-04-10 15:34 大胖子球花 阅读(65) 评论(0) 推荐(0)
摘要:import java.util. ; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in 阅读全文
posted @ 2019-04-07 21:33 大胖子球花 阅读(66) 评论(0) 推荐(0)
摘要:AC 阅读全文
posted @ 2019-04-07 20:59 大胖子球花 阅读(77) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_36778821/article/details/54839071 import java.util. ; public class Main{ public static void main(String[] args){ Scanner sc = 阅读全文
posted @ 2019-04-07 20:58 大胖子球花 阅读(61) 评论(0) 推荐(0)
摘要:先是看了discuss第一的一个tricky方法,用单个栈做。 更通用的应该是中缀表达式转前后缀表达式,两个栈的方法。参考 "前缀、中缀、后缀表达式(逆波兰表达式)" 阅读全文
posted @ 2019-04-02 00:24 大胖子球花 阅读(86) 评论(0) 推荐(0)
摘要:这题自然的会想到用两头往中间走的双指针或者二维dp。 首先二维dp时间复杂度并不比暴力解法好。 然后两头往中间走的双指针在两个指针指向的值相等的时候移动方向不明确。 受到Leetcode 76 Minimum Window Substring 启发,可以使用从头开始的快慢指针做。 Runtime: 阅读全文
posted @ 2019-03-29 12:50 大胖子球花 阅读(61) 评论(0) 推荐(0)
摘要:``` class Solution { public boolean isPalindrome(String s) { if(s.length()r会退出循环,这时应该是最后两个元素是一样的,于是l,r互换导致 } private boolean isAlphaNumeric(char c){ i 阅读全文
posted @ 2019-03-29 11:35 大胖子球花 阅读(72) 评论(0) 推荐(0)
摘要:``` / Definition for singly linked list. class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } } / public class Solution 阅读全文
posted @ 2019-03-29 11:15 大胖子球花 阅读(110) 评论(0) 推荐(0)
摘要:Runtime: 0 ms, faster than 100.00% of Java online submissions for Linked List Cycle. Memory Usage: 37.6 MB, less than 96.65% of Java online submission 阅读全文
posted @ 2019-03-29 00:04 大胖子球花 阅读(63) 评论(0) 推荐(0)
摘要:题挺好的,就是题意容易引起误解:其实问题就是让链表中小于x的结点出现在大于等于x节点的左边,并保持原有顺序(稳定)。 如: Input: head = 2 4 3 1 5 2, x = 3 Output: 2 1 2 4 3 5 题不算难,只要分析好节点交换时需要记录哪些节点,别让链断掉就好。 另外 阅读全文
posted @ 2019-03-28 16:07 大胖子球花 阅读(56) 评论(0) 推荐(0)
摘要:这题挺难的,对着答案才写了出来。 看来双指针还是没那么容易的。 要归纳一下双指针都有哪些走法。 class Solution { public String minWindow(String s, String t) { if(s.length()==0||t.length()==0) return 阅读全文
posted @ 2019-03-28 15:45 大胖子球花 阅读(64) 评论(0) 推荐(0)
摘要:Runtime: 1 ms, faster than 35.70% of Java online submissions for Remove Duplicates from Sorted List II. Memory Usage: 37.7 MB, less than 23.00% of Jav 阅读全文
posted @ 2019-03-28 00:34 大胖子球花 阅读(63) 评论(0) 推荐(0)
摘要:Runtime: 1 ms, faster than 21.21% of Java online submissions for Remove Duplicates from Sorted List. Memory Usage: 37.8 MB, less than 21.98% of Java o 阅读全文
posted @ 2019-03-28 00:19 大胖子球花 阅读(70) 评论(0) 推荐(0)
摘要:这题和 26 Remove Duplicates from Sorted Array 40.0% Easy 80 Remove Duplicates from Sorted Array II 39.7% Medium 83 Remove Duplicates from Sorted List 42. 阅读全文
posted @ 2019-03-28 00:11 大胖子球花 阅读(78) 评论(0) 推荐(0)
摘要:这题和 26 Remove Duplicates from Sorted Array 40.0% Easy 80 Remove Duplicates from Sorted Array II 39.7% Medium 83 Remove Duplicates from Sorted List 42. 阅读全文
posted @ 2019-03-28 00:08 大胖子球花 阅读(82) 评论(0) 推荐(0)

1 2 3 4 5 ··· 9 下一页