
算法(leetcode实战)
飘过的小熊
这个作者很懒,什么都没留下…
展开
-
Sort-----57. Insert Interval
原题目 参考资料 这题是hard,思考了一下觉得有很多种情况要考虑,,,放弃,后来看了人家的代码发现原来这么随意。还是火候不到哟。思路要到位,这种题见过很多了! public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) { ArrayList<Interva原创 2017-08-24 14:45:01 · 279 阅读 · 0 评论 -
Tree-----109. Convert Sorted List to Binary Search Tree
原题目 参考资料原创 2017-07-25 16:58:57 · 214 阅读 · 0 评论 -
HashTable-----202. Happy Number
原题目原创 2017-07-25 15:36:39 · 242 阅读 · 0 评论 -
HashTable-----204. Count Primes
原题目 维基百科筛选法 参考资料原创 2017-07-25 15:07:09 · 219 阅读 · 0 评论 -
HashTable----- List 299. Bulls and Cows
原题目参考博文原创 2017-07-24 15:24:42 · 149 阅读 · 0 评论 -
HashTable----- 290. Word Pattern
原题目原创 2017-07-24 13:55:50 · 179 阅读 · 0 评论 -
String-----93. Restore IP Addresses
原题目原创 2017-07-19 18:07:23 · 198 阅读 · 0 评论 -
HashTable----- 149. Max Points on a Line
原题目 参考资料原创 2017-07-23 18:51:14 · 164 阅读 · 0 评论 -
HashTable-----138. Copy List with Random Pointer
原题目参考资料原创 2017-07-23 16:28:24 · 174 阅读 · 0 评论 -
DP-----91. Decode Ways
原题目原创 2017-07-19 17:01:37 · 242 阅读 · 0 评论 -
DP-----413. Arithmetic Slices
原题目原创 2017-07-19 13:56:12 · 184 阅读 · 0 评论 -
Tree-----297. Serialize and Deserialize Binary Tree(二叉树的序列化与反序列化)
原题目原创 2017-07-22 15:11:39 · 301 阅读 · 0 评论 -
Tree----- 257. Binary Tree Paths(二叉树从根节点开始的所有路径)
原题目原创 2017-07-22 13:58:23 · 214 阅读 · 0 评论 -
Array-----152. Maximum Product Subarray(最大连续子数组乘积)
原题目原创 2017-07-18 16:08:12 · 198 阅读 · 0 评论 -
Tree----- 99. Recover Binary Search Tree
原题目 参考资料原创 2017-07-26 15:56:03 · 178 阅读 · 0 评论 -
BinarySearch-----279. Perfect Squares
原题目 找出完全平方。听说有个叫做什么四平方定理的,但是没有使用过。简单来说粗暴的方式就是通过遍历的几次循环将所有的最小方案都解决掉,然后直接输出 public int numSquares(int n) { if (n <= 0) { return 0; } int[] dp = new int[n + 1];原创 2017-08-11 16:17:12 · 191 阅读 · 0 评论 -
Sort-----147. Insertion Sort List
原题目 链表的插入排序,就是维护一个新链表,然后从原来链表中提数字插入就是了。思想有点像反转链表。 public ListNode insertionSortList(ListNode head) { ListNode dummy = new ListNode(0); ListNode p = head; while (p != null) {原创 2017-08-24 00:41:16 · 186 阅读 · 0 评论 -
Sort-----148. Sort List
原题目 题目就是把一个链表在nlgn的时间内使用常数空间排序。第一次尝试,明知道不会过,但是就是想写写链表的选择排序 public ListNode sortList(ListNode head) { ListNode p = head; ListNode q = head; while (p != null) { q =原创 2017-08-23 00:43:37 · 216 阅读 · 0 评论 -
Bit Manipulation-----190. Reverse Bits&&191. Number of 1 Bits
原题目 参考 这题比较有意思,我还以为需要使用String,但是发现还原回来的时候很有肯能引起溢出,没想这么简单 public int reverseBits(int n) { int result = 0; if (n == 0) { return result; } for (int i = 0; i原创 2017-08-22 00:17:26 · 167 阅读 · 0 评论 -
UnionFInd-----130. Surrounded Regions
原题目 着色法,把陆地圈出来然后再做遍历。但是出现了栈溢出的情况。1.栈溢出import java.util.ArrayList;import java.util.List;/** * Created by XQF on 2017/8/11. */class ListNode { int val; ListNode next; public ListNode(in原创 2017-08-24 23:58:14 · 262 阅读 · 0 评论 -
Unionfind----128. Longest Consecutive Sequence
原题目参考 显然是不能使用比较排序的,然后还要设计到去重的问题,于是使用set了,于是想到使用TreeSet,一键解决美滋滋,不过比较恼人的是不能进行索引遍历,所以还得先复制到一个数组里去 public int longestConsecutive(int[] nums) { if (nums == null || nums.length == 0) {原创 2017-08-24 17:36:13 · 243 阅读 · 0 评论 -
Stack-----150. Evaluate Reverse Polish Notation
原题目 题目是比较简单,就是使用一个栈,每次遇到符号就计算就行了。但是在除法的时候注意除数为0的情况。还有就是除数与被除数的位置 public int evalRPN(String[] tokens) { int result = 0; Stack<String> stack = new Stack<>(); for (int i = 0; i原创 2017-08-14 13:39:10 · 162 阅读 · 0 评论 -
Stack----232. Implement Queue using Stacks
原题目 两个栈,倒买倒卖public class MyQueue { Stack<Integer> stack1; Stack<Integer> stack2; public MyQueue() { stack1 = new Stack<>(); stack2 = new Stack<>(); } public void pus原创 2017-08-14 01:19:19 · 184 阅读 · 0 评论 -
Stack-----225. Implement Stack using Queues
原题目 使用两个队列来实现栈,主要就是在pop()或者top()操作的时候进行两次倒买倒卖。不想整理代码了,明天弄了public class MyStack { Queue<Integer> q1; Queue<Integer> q2; public MyStack() { q1 = new LinkedList<>(); q2 = ne原创 2017-08-14 01:11:25 · 153 阅读 · 0 评论 -
Stack-----84. Largest Rectangle in Histogram
原题目 参考资料 这种实在是,。,。记得有几种类型的题都是两个指针中间挤,其实这里是一点思路都没有,因为涉及到保留之前的数据,两个指针就不是那么好用了。下面这种解法还是比较新奇的,用一个栈来保留前面递增的索引号,然后从当前索引往前面进行倒推计算。 public int largestRectangleArea(int[] heights) { if (heights ==原创 2017-08-13 18:29:15 · 245 阅读 · 0 评论 -
Stack-----42. Trapping Rain Water
原题目 参考资料 简单做法就是两个指针。但是并没有用到stack。两个指针左右移进。每一个指针移动后和前一个位置的数值进行比较。 public int trap(int[] height) { int left = 0; int right = height.length - 1; if (left >= right) {原创 2017-08-13 16:39:16 · 271 阅读 · 0 评论 -
LinkedList----- List 61. Rotate List
题目连接 这道题通过率略低,,不知道为什么,有好几种的做法,几乎没什么难度,不过要是能在O(1)空间内就行了。 public ListNode rotateRight(ListNode head, int k) { if (head == null) { return head; } ListNode p = head;原创 2017-08-20 14:03:15 · 206 阅读 · 0 评论 -
Stack-----155. Min Stack
原题目 简单就是维护两个栈就行了,但是看到讨论区的一个栈实现也是挺有意思的,记录一下two stackpublic class MinStack{ Stack<Integer> stack1=new Stack<>(); Stack<Integer> stack2=new Stack<>(); int min=Integer.MAX_VALUE; public原创 2017-08-13 14:41:43 · 207 阅读 · 0 评论 -
Linked List-----25. Reverse Nodes in k-Group
原题目 虽然是使用LinkedList的题目,但是我还是使用stack来做了,但是代码实在是太乱了,待会儿整理吧,毕竟现在是凌晨五点了,可是我还是没有一点睡意,显然我都不知道自己在修改一些什么东西了。 显然比较棘手的是处理结尾的地方,有四种可能的情况要处理stack public ListNode reverseKGroup(ListNode head, int k) {原创 2017-08-13 05:17:25 · 276 阅读 · 0 评论 -
Tree-----最低公共祖先系列
1.BST中的最低公共祖先原题目原创 2017-07-21 17:59:05 · 192 阅读 · 0 评论 -
Tree----- 226. Invert Binary Tree(镜像树)
原题目原创 2017-07-21 15:51:36 · 137 阅读 · 0 评论 -
Tree-----222. Count Complete Tree Nodes(统计完全二叉树的节点个数)
原题目原创 2017-07-21 15:38:20 · 200 阅读 · 0 评论 -
Arrays-----118. Pascal's Triangle
暑假开始的第一题,。,。先找找easy的找回手感哈哈,练习一下使用的junit原创 2017-07-15 15:45:40 · 217 阅读 · 0 评论 -
Tree-----镜像树(101. Symmetric Tree)
原题目原创 2017-04-28 00:14:23 · 212 阅读 · 0 评论 -
BackTrack-----找出一个集合的所有子集(78. Subsets)
原题目 参考博文原创 2017-05-08 22:24:01 · 524 阅读 · 0 评论 -
Tree-----找出和等于给定数字的所有路径(113. Path Sum II)
原题目原创 2017-05-05 23:45:26 · 425 阅读 · 0 评论 -
归并排序思想应用之----求数组中的逆序对
求数组中的逆序对的问题我在大一的时候就遇到过,没想到三年了。还是不原创 2017-04-23 20:40:46 · 245 阅读 · 0 评论 -
动态规划专题之----198. House Robber
标签(空格分隔): LeetCode题目链接原创 2017-04-13 01:26:33 · 420 阅读 · 0 评论 -
动态规划专题之----213. House Robber II
原题链接肯定是要在第一题的基础来是比较好解决的。原创 2017-04-22 23:47:18 · 318 阅读 · 0 评论 -
Tree-----根据给定的数字找路径(112. Path Sum)
原题目参考博文显然是深搜,但是一想到要回退什么的就一团糟,,学习了人家原创 2017-05-05 00:26:00 · 315 阅读 · 0 评论