leetcode题解
zhang_shuai12
料峭春风吹酒醒,谁怕?一蓑烟雨任平生。
展开
-
leetcode 第190题 Reverse Bits
Reverse bits of a given 32 bits unsigned integer.For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110原创 2015-04-13 00:26:12 · 460 阅读 · 0 评论 -
leetcode 第101题 Symmetric tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric:1/ \ 2 2 / \ / \ 3 4 4 3But the following is not:1/原创 2015-05-01 22:52:36 · 302 阅读 · 0 评论 -
leetcode 第209题 Minimum Size Subarray Sum
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn’t one, return 0 instead.For example, given the array [2,3,1,2,4,原创 2015-05-16 07:52:32 · 387 阅读 · 0 评论 -
leetcode 第204题 Count Primes
Description:Count the number of prime numbers less than a non-negative number, n.思路: 我们设一个bool数组prime[n],首先对小于n内的所有的下标为奇数的标为true,下标为偶数的标为false. 我们知道,当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数原创 2015-05-16 21:16:05 · 292 阅读 · 0 评论 -
leetcode 第58题 Length Of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string.If the last word does not exist, return 0.Note: A word is defined as原创 2015-05-17 07:32:22 · 347 阅读 · 0 评论 -
leetcode 第124题 Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example: Given the below binary tree, 1 / \ 2 3Return 6. 思路:用dfs遍历,先分别算出左右子树的和,若L>0,则加上L;若原创 2015-05-18 10:18:36 · 308 阅读 · 0 评论 -
leetcode 第74题 Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each row is原创 2015-05-23 21:51:52 · 343 阅读 · 0 评论 -
leetcode 第69题 Sqrt(x)
Implement int sqrt(int x).Compute and return the square root of x.思路:我们可以用牛顿法来求解。C++代码实现:class Solution {public: int mySqrt(int x) { double result = 1.0; double delta = 1e-5;原创 2015-05-23 22:05:33 · 381 阅读 · 0 评论 -
leetcode 第94题 Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3},1 \ 2 / 3return [1,3,2]. 思路1:递归实现。C++实现:/** * Definition for a bina原创 2015-05-24 20:06:28 · 407 阅读 · 0 评论 -
leetcode 第145题 Binary Tree Postorder Traversal
Given a binary tree, return the postorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3},1 \ 2 / 3return [3,2,1]. 思路1:递归实现。C++代码实现:/** * Definition for a原创 2015-05-24 21:59:01 · 403 阅读 · 0 评论 -
leetcode 第89题 Gray Code
The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray原创 2015-05-25 15:55:32 · 409 阅读 · 0 评论 -
leetcode 231题 power of Two
question: Given an integer, write a function to determine if it is a power of two. 思路:power of 2表明只有最高位为1,其余为均为0,则若n&(n-1)为0,返回true,否则返回false.class Solution {public: bool isPowerOfTwo(int n) {原创 2015-07-06 13:46:13 · 354 阅读 · 0 评论 -
Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each row is原创 2016-03-07 16:04:43 · 287 阅读 · 0 评论 -
Lowest Common Ancestor of a Binary Search Tree
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 between two原创 2016-03-07 18:13:23 · 310 阅读 · 0 评论 -
Wildcard Matching
Implement wildcard pattern matching with support for ‘?’ and ‘*’.‘?’ Matches any single character. ‘*’ Matches any sequence of characters (including the empty sequence).The matching should cover the e原创 2016-09-17 13:09:38 · 456 阅读 · 0 评论 -
ZigZag Conversion
The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I I GY原创 2016-09-17 14:09:14 · 271 阅读 · 0 评论 -
Reverse Integer
Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Have you thought about this? Here are some good questions to ask before coding. Bonus p原创 2016-09-17 14:45:01 · 292 阅读 · 0 评论 -
leetcode 第83题 Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 思路:定义两个指针,p = head, q = head->n原创 2015-05-10 15:08:50 · 324 阅读 · 0 评论 -
leetcode 第125题 valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car” is not a palin原创 2015-05-09 21:54:16 · 329 阅读 · 0 评论 -
leetcode 第160题 MinStack
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() -- Get the原创 2015-04-12 17:07:01 · 295 阅读 · 0 评论 -
leetcode 第27题 Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.The order of elements can be changed. It doesn’t matter what you leave beyond the new length. 思路:额外定义一个原创 2015-04-13 07:46:34 · 433 阅读 · 0 评论 -
leetcode 第153题 Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).Find the minimum element.You may assume no duplicate exists in the array.思路:用b原创 2015-04-14 00:43:24 · 303 阅读 · 0 评论 -
leetcode 第九题 Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. Some hints:Could negative integers be palindromes? (ie, -1)If you are thinking of converting the integer to string, note the原创 2015-04-24 00:12:51 · 256 阅读 · 0 评论 -
leetcode 第144题 Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3},1 \ 2 / 3return [1,2,3]. 思路:迭代方法实现,用一个stack + 一个vector实现java代码如下:/*原创 2015-04-16 00:33:44 · 368 阅读 · 0 评论 -
leetcode 第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 extra me原创 2015-04-16 20:05:43 · 323 阅读 · 0 评论 -
leetcode 第23题 Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 思路:自底向上递归实现,时间复杂度O(nlogk),空间复杂度O(k)c++代码实现:/** * Definition for singly-linked list. * struct ListNod原创 2015-04-26 11:18:30 · 420 阅读 · 0 评论 -
leetcode 第18题 4Sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.Note:Elements in a quadru原创 2015-04-26 09:54:26 · 305 阅读 · 0 评论 -
leetcode 第8题 String to Integer(atoi)
Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.N原创 2015-04-22 00:09:20 · 434 阅读 · 0 评论 -
leetcode 第112题 Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example: Given the below binary tree and sum =原创 2015-05-02 07:50:59 · 235 阅读 · 0 评论 -
leetcode 第111题 Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.思路:递归实现。若左右子树均不空,则返回左子树和右子树中较小的深度+1,否则返回左子树原创 2015-05-02 16:09:02 · 357 阅读 · 0 评论 -
leetcode 第114题 Flatten Binary Tree To Linked List
Given a binary tree, flatten it to a linked list in-place.For example, Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like:1\ 2 \ 3 \ 4 \原创 2015-05-02 15:43:44 · 310 阅读 · 0 评论 -
leetcode 第110题 Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by原创 2015-05-02 16:46:52 · 376 阅读 · 0 评论 -
leetcode 第173题 Binary Search Tree Iterator
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() will return the next smallest number in the BST.Note: next() and hasN原创 2015-05-09 14:40:36 · 287 阅读 · 0 评论 -
leetcode 第104题 Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.思路:递归实现。代码易懂。C++实现如下:/** * Definition for原创 2015-05-02 18:55:47 · 253 阅读 · 0 评论 -
Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings. 例如:[“leets”, “leetcode”, “leet”, “leed”], LCP为“lee”.思路: 垂直搜索,从头开始比较每个字符串相同位置的字符, 若相同,则继续向后比较, 否则返回任一字符串从头到该位置的字原创 2016-09-18 13:42:38 · 335 阅读 · 0 评论