LeetCode
i-Blue
抱平常心走平常路
展开
-
494. Target Sum-回溯法、DP。
可以使用方法:回溯法、DP。相近的问题:Partition Equal Subset Sum、01背包(1)、01背包(2)。问题描述:You are given a list of non-negative integers, a1, a2, ..., an, and a target,S. Now you have 2 symbols + and -. For ea原创 2017-02-13 22:30:49 · 1963 阅读 · 0 评论 -
437. Path Sum III--dfs + hash + 连续序列的和等于给定的数num
You are given a binary tree in which each node contains an integer value.Find the number of paths that sum to a given value.The path does not need to start or end at the root or a leaf, but it原创 2016-10-27 19:48:22 · 1628 阅读 · 0 评论 -
26. Remove Duplicates from Sorted Array(删除已排序数组中的重复数)-two pointers
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with原创 2016-11-07 20:32:14 · 287 阅读 · 0 评论 -
292. Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the原创 2016-09-29 20:00:39 · 238 阅读 · 0 评论 -
326. Power of Three / 342. Power of Four
Given an integer, write a function to determine if it is a power of three.Follow up:Could you do it without using any loop / recursion?代码:class Solution {public: bool isPowerOfThree(i原创 2016-10-22 20:12:37 · 282 阅读 · 0 评论 -
172. Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.重点在于质因数的运用。一个数的阶乘可以写成其所有质数的n次方相乘的形式,例如:10!= 2^8 * 3^4 *原创 2016-09-28 21:23:20 · 235 阅读 · 0 评论 -
235. Lowest Common Ancestor of a Binary Search Tree--dfs
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined betw原创 2016-10-24 22:03:36 · 287 阅读 · 0 评论 -
387. First Unique Character in a String
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.Examples:s = "leetcode"return 0.s = "loveleetcode",return 2.Note:原创 2016-10-13 19:57:16 · 283 阅读 · 0 评论 -
136. Single Number-位运算,异或
Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ext原创 2016-09-27 21:23:28 · 240 阅读 · 0 评论 -
100. Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.题目判断两个bina原创 2016-10-12 21:28:43 · 243 阅读 · 0 评论 -
Maximum XOR of Two Numbers in an Array--异或、字典树
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231.Find the maximum result of ai XOR aj, where 0 ≤ i, j n.Could you do this in O(n) runtime?Example:Input:原创 2016-10-20 19:55:45 · 402 阅读 · 0 评论 -
101. Symmetric Tree--DFS(递归)/BFS(queue+迭代)
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / \ 2 2 / \ / \3 4 4 3原创 2016-11-02 17:44:33 · 497 阅读 · 0 评论 -
20. Valid Parentheses--合法的括号组合(使用stack)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all vali原创 2016-11-23 14:39:25 · 313 阅读 · 0 评论 -
287. Find the Duplicate Number--binary search/快慢指针
Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, fi原创 2017-02-18 20:55:27 · 541 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历—迭代方法
leetcode上的相关题目:前序:https://leetcode.com/problems/binary-tree-preorder-traversal/?tab=Description中序:https://leetcode.com/problems/binary-tree-inorder-traversal/?tab=Description后序:https://leetcode.原创 2017-02-25 11:35:46 · 9829 阅读 · 0 评论 -
416. Partition Equal Subset Sum子数组和问题
相同子集和分割。与0-1背包相似:01背包(1)、01背包(2)。问题:Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets转载 2017-02-13 22:10:30 · 1206 阅读 · 2 评论 -
378. Kth Smallest Element in a Sorted Matrix-binary search/heap
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth smallest element in the matrix.Note that it is the kth smallest element in the sorted order, not原创 2017-02-18 11:56:36 · 316 阅读 · 0 评论 -
LeetCode Maximum Product Subarray_DP_最大子数组
题目:Maximum Product SubarrayFind the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,-2,4],the contig原创 2017-01-07 16:07:17 · 354 阅读 · 0 评论 -
Min Stack_栈_保存最小值(用数组)
题目:Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- G原创 2016-12-09 20:25:18 · 359 阅读 · 0 评论 -
204. Count Primes_找n以内的质数_hash
题目以及解法思路答案在原网页上都有。https://leetcode.com/problems/count-primes/Description:Count the number of prime numbers less than a non-negative number, n.Hint:Let's start with a isPrime function.原创 2016-12-08 20:03:58 · 354 阅读 · 0 评论 -
Implement strStr()--字符串匹配_kmp_bkdHash
Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.两种方法:1)bkdHash2)kmp代码分别如下://bkdHashint strStr(string原创 2016-12-08 19:08:11 · 357 阅读 · 0 评论 -
237. Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value原创 2016-10-12 19:26:01 · 219 阅读 · 0 评论 -
27. Remove Element-two pointers
Given an array and a value, remove all instances of that value in place and return the new length.Do not allocate extra space for another array, you must do this in place with constant memory.原创 2016-09-26 20:09:54 · 253 阅读 · 0 评论 -
Count of Smaller Numbers After Self
You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the number of smaller elements to the right of nums[i].Example:原创 2016-09-21 22:59:16 · 267 阅读 · 0 评论 -
198. House Robber-动态规划
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house原创 2016-09-13 15:29:05 · 657 阅读 · 0 评论 -
174. Dungeon Game-动态规划
The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M x N rooms laid out in a 2D grid. Our valiant knight (K) was initially p原创 2016-09-12 21:43:43 · 380 阅读 · 0 评论 -
10. Regular Expression Matching-动态规划/递归回溯
mplement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input str原创 2016-09-11 21:40:08 · 1121 阅读 · 0 评论 -
307. Range Sum Query - Mutable
Tags--binary indexed tree(二分索引树,树状数组)原创 2016-08-19 20:31:39 · 453 阅读 · 0 评论 -
349. Intersection of Two Arrays
Tags- binary search, hash table, two pointers, sort方法一:sort+binary search先对nums1、nums2从小到大排序,然后,对于nums2中不同的元素,我们在nums1中二分搜索,看看是否存在。这里注意,nums2中的元素是排过序的,所以没有必要每个元素都在(0, nums1.size()-1)中二分搜索。比如,num原创 2016-08-19 15:33:29 · 285 阅读 · 0 评论 -
39. Combination Sum-回溯法
Tags: backTracking(回溯法) http://blog.csdn.net/jarvischu/article/details/16067319 http://www.cnblogs.com/chinazhangjie/archive/2010/10/22/1858410.html http://blog.csdn.ne原创 2016-08-29 21:35:39 · 582 阅读 · 0 评论 -
Valid Number-有限状态机/正则表达式
Validate if a given string is numeric.Some examples:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => trueNote: It is intended for the problem statement to be ambig原创 2016-09-09 12:02:24 · 1273 阅读 · 0 评论 -
[LeetCode] Unique Paths-动态规划
开一个f[m][n]的数组,f[i][j] = f[i-1][j] + f[i][j-1],空间时间复杂度O(m*n)。用滚动数组空间复杂度可降为O(n)原创 2016-07-21 21:00:30 · 295 阅读 · 0 评论 -
3Sum Closest
tags:two pointers解法思想见:http://www.sigmainfy.com/blog/summary-of-ksum-problems.html代码:class Solution {public: int threeSumClosest(vector& nums, int target) { sort(nums.begin(), nums.原创 2016-08-23 21:59:07 · 209 阅读 · 0 评论 -
Majority Element / Majority Element 2-主要元素
一类找主要元素的题目。最简单最直观的想法就是,统计每个元素出现的个数(可以用map),然后再判断哪些元素是主要元素。时间和空间复杂度都是O(n)。但是,Majority Element 2要求空间复杂度为O(1)。这就没想出来了。网上搜了下,这是一类问题,即找主要元素的问题,采用moore投票法的思想。Majority Element:摩尔投票法 Moore Voting,原创 2016-08-24 16:35:36 · 318 阅读 · 0 评论 -
4Sum
tags: hash table、two pointersk-sum问题都是一类问题。最经典的是2-sum,用two pointers在线性时间内解决。至于3sum、4sum问题,都可以先将问题分解,然后在用2sum的方法解决。2sum时间复杂度O(N^2),3sum时间复杂度O(N^3)。具体见:http://www.sigmainfy.com/blog/summary-of-k原创 2016-09-03 18:58:08 · 531 阅读 · 0 评论 -
389. Find the Difference-hash map/XOR
Given two strings s and t which consist of only lowercase letters.String t is generated by random shuffling string s and then add one more letter at a random position.Find the letter that was原创 2016-10-10 20:56:01 · 337 阅读 · 0 评论 -
First Missing Positive-计数排序/桶排序
Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant原创 2016-09-24 20:14:08 · 275 阅读 · 0 评论 -
34. Search for a Range-二分搜索
题目:Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in the order of O(log n).If the target is n原创 2016-09-07 20:02:16 · 327 阅读 · 0 评论 -
LeetCode-做题简记
2016年夏天开始,跟着学校的一个leetcode群每天做一题。下面记录下过程中没来得及做的,或者没做好的,或者个人觉得得留意下的题目,以备更好的回顾。菜鸟一个~未做的题目(有空补上):112. Path Sum241. Different Ways to Add Parentheses3. Longest Substring Without Repeating Cha原创 2016-09-22 20:04:49 · 233 阅读 · 0 评论 -
377. Combination Sum IV-动态规划
Given an integer array with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.Example:nums = [1, 2, 3]target = 4The pos原创 2016-09-22 19:54:56 · 1295 阅读 · 0 评论