leetcode
kainever
这个作者很懒,什么都没留下…
展开
-
Reverse Integer
注意: 这道题目不难,但是多处要注意: 1. 0结尾 2. 反转过来是否越界 3. 负数与正数 // 可以利用 StringBuffer 的 reverse()方法的。 public class Solution { public int reverse(int x) { if(x == 0 ||原创 2015-07-25 22:21:59 · 301 阅读 · 0 评论 -
4Sum(****) 基于3Sum
题目: 在array中找到所有的组合 a + b + c + d = target , 组合不重复且a < b < c < d数组排序对每一个数组中的元素arr[i] , 求3Sum target = target - arr[i] 时间复杂度 < O(n^3)3Sum暴力的话,时间复杂度为O(n^3) , 但是对于排序的数组,对于 下标 i , j 如果 i < j arr[i] + arr原创 2015-08-31 21:18:10 · 415 阅读 · 0 评论 -
Basic Calculator II(**)
题目: 计算输入字符串的值 “3 + 4 2 / 3 ”思路: 用栈来存值 public class Solution { public static int calculate(String s) { char[] chars = s.trim().toCharArray(); LinkedList<Integer> numStack = new Li原创 2015-08-16 17:12:00 · 359 阅读 · 0 评论 -
Group Anagrams(***)
题目: Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], Return: [ [“ate”, “eat”,”tea”], [“nat”,”tan”], [“bat”] ]思路: 1. 对每一个单词原创 2015-08-16 13:00:31 · 764 阅读 · 0 评论 -
Word Search (***)
题目: Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or vertical原创 2015-08-30 16:42:30 · 392 阅读 · 0 评论 -
Generate Parentheses(****)
题目: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: “((()))”, “(()())”, “(())()”, “()(())”, “()()原创 2015-08-16 17:30:10 · 602 阅读 · 0 评论 -
Spiral Matrix(**)
题目: 螺旋化输出矩阵 For example, Given the following matrix:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] You should return [1,2,3,6,9,8,7,4,5].思路: 递归 1. 以一圈为一次递归 比如上面的 1 2 3 6 9 8 7 4 2. 设置四个指针 top b原创 2015-08-30 19:05:20 · 388 阅读 · 0 评论 -
基于快排 查找数组中出现三次的元素(***)
题目: 数组中有一个元素出现3次,其余出现两次 找到出现三次的元素, 要求空间复杂度 O(1) // 不要想用Map 时间复杂度不大于O(nlgn)思路: 快排,count 记录在比较过程中与基准元素相等的个数,如果==3 , 则直接返回//找到出现三次的数,数组中的元素要么出现两次就是三次 public static int quickSort(int[] arr , int l原创 2015-08-30 22:01:27 · 903 阅读 · 0 评论 -
Word Loadder II (***) -- BFS DFS
题目 : 和 word Loadder 不同的是他要列出所有最短的路径思路 : 1. BFS生成从start 到 end 节点与高度的map 2. DFS从 end节点,递归遍历到start, 找出所有可能的路径代码来自 : Leetcode Word Ladder II 解题报告public class Solution { //记录每个单词所在的层数 HashMap原创 2015-08-26 22:14:19 · 450 阅读 · 0 评论 -
word Loadder I(****) -- BFS
题目:Given two words (beginWord and endWord), and a dictionary, find the length of shortest transformation sequence from beginWord to endWord, such that:Only one letter can be changed at a time Each int原创 2015-08-26 21:14:08 · 434 阅读 · 0 评论 -
Kth Largest Element in an Array
题目: 查找(无序)数组中第K大的元素 == > O(n)思路: 1. 快排的时候,partition() == > 返回的就是某个元素的位置 通过比较这个元素idx 与 待查找元素的idx , 缩小查找范围public class Solution { public int findKthLargest(int[] nums, int k) { int len原创 2015-08-09 11:13:53 · 310 阅读 · 0 评论 -
二叉树反转(Invert Binary Tree )
思路: 一次前序遍历 public class Solution { public TreeNode invertTree(TreeNode root) { if(root == null) return root; TreeNode tmp = root.left; root.left = root原创 2015-07-25 22:21:53 · 463 阅读 · 0 评论 -
前后指针的妙用之3 SUM
题目意思 : 在一个数组中,无重复元素,找出所有 组合 他们的和 == 0 即 a + b + c = 0; 组合满足的条件 : 1 . a 2 . 组合不能重复 题目思路: 如果是暴力求解话,那么就得有三个for循环,时间复杂度为 O(n^3); 而下面的方法,为O(n^2) 首先对数组排序; 然后可以借鉴暴力求解原创 2015-07-25 22:19:50 · 344 阅读 · 0 评论