数据结构与算法
梅子黄时_宿于松下
本科毕业于安工大自动化专业,研究生就读于北航控制系。做过战斗机飞行仿真平台,热爱生活,享受写代码的感觉,现于墨迹风云(北京)软件科技发展有限公司从事墨迹天气iOS客户端开发。
展开
-
LeetCode——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() – Get原创 2015-06-16 21:48:01 · 264 阅读 · 0 评论 -
LeetCode——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.解答:/** * Definition for a binary tree n原创 2015-06-08 11:17:02 · 399 阅读 · 0 评论 -
LeetCode——Reverse Integer
题目: Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321解答:class Solution {public: int reverse(int x) { int k = x < 0 ? -1 : 1; int abs = x *原创 2015-06-09 10:17:17 · 322 阅读 · 0 评论 -
LeetCode——Rectangle Area
题目:Find the total area covered by two rectilinear rectangles in a 2D plane.Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.Assume that the total area is原创 2015-06-08 21:25:58 · 371 阅读 · 0 评论 -
LeetCode——Palindrome Number
题目: Determine whether an integer is a palindrome. Do this without extra space.解答://调优后的算法表现还不是很好,不知道还有没有更好的算法,暂时就这样吧!//11506 / 11506 test cases passed.//Status: Accepted//Runtime: 56 msclass Soluti原创 2015-06-09 21:55:36 · 304 阅读 · 0 评论 -
LeetCode——Remove Linked List Elements
题目: Remove all elements from a linked list of integers that have value val.Example Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6 Return: 1 –> 2 –> 3 –> 4 –> 5解答:/** * Definition for singly-linked原创 2015-06-09 22:16:44 · 315 阅读 · 0 评论 -
LeetCode——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.解答原创 2015-07-08 20:07:07 · 327 阅读 · 0 评论 -
LeetCode——Evaluate Reverse Polish Notation
题目:Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Some examples: ["2", "1", "+", "3", "*原创 2015-07-08 23:15:55 · 313 阅读 · 0 评论 -
LeetCode——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 h原创 2015-06-13 13:23:18 · 286 阅读 · 0 评论 -
LeetCode——Rotate Array
题目: Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].解答:class Solution {public: void reverse(int l,原创 2015-06-13 23:08:31 · 300 阅读 · 0 评论 -
LeetCode——Happy Number
题目: Write an algorithm to determine if a number is “happy”.A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares原创 2015-06-12 23:32:50 · 424 阅读 · 0 评论 -
LeetCode——Invert Binary Tree
题目: Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1解答:/** * Definition for a binary tree node. * struct TreeNode { * int原创 2015-06-12 23:45:56 · 343 阅读 · 0 评论 -
LeetCode——Intersection of Two Linked Lists
题目: Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2 ↘原创 2015-06-15 23:36:43 · 331 阅读 · 0 评论 -
LeetCode——Majority Element
题目: Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element al原创 2015-06-15 21:25:24 · 308 阅读 · 0 评论 -
LeetCode——Factorial Trailing Zeroes
题目: Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.解答:class Solution {public: int trailingZeroes(int n) { int原创 2015-06-15 19:39:09 · 493 阅读 · 0 评论 -
LeetCode——Insertion Sort List
题目:Sort a linked list using insertion sort.解答:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };原创 2015-07-18 23:08:40 · 396 阅读 · 0 评论 -
LeetCode——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].解答:/** * Definition for a binary tree n原创 2015-07-18 00:31:14 · 426 阅读 · 0 评论 -
LeetCode——Isomorphic Strings
题目:Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced with another ch原创 2015-06-07 23:56:11 · 348 阅读 · 0 评论 -
LeetCode——Reverse Linked List
题目:Reverse a singly linked list.解答:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class S原创 2015-06-07 23:14:07 · 413 阅读 · 0 评论 -
LeetCode——Merge Two Sorted Lists
题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.解答:/** * Definition for singly-linked list. * struct原创 2015-06-16 13:43:32 · 291 阅读 · 0 评论 -
LeetCode——Remove Duplicates from Sorted Array
题目: 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原创 2015-06-17 13:26:32 · 248 阅读 · 0 评论 -
LeetCode——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原创 2015-06-16 22:15:39 · 281 阅读 · 0 评论 -
LeetCode——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.解答:/** * Definition for singly-原创 2015-06-17 23:22:02 · 255 阅读 · 0 评论 -
LeetCode——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-06-17 23:39:41 · 267 阅读 · 0 评论 -
LeetCode——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.解答:/** * Definition for a binary tree原创 2015-06-18 13:34:04 · 306 阅读 · 0 评论 -
LeetCode——Plus One
题目:Given a non-negative number represented as an array of digits, plus one to the number.The digits are stored such that the most significant digit is at the head of the list.解答:class Solution {public原创 2015-06-22 01:07:12 · 370 阅读 · 0 评论 -
LeetCode——Binary Tree Level Order Traversal
题目: Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \原创 2015-06-22 00:10:21 · 348 阅读 · 0 评论 -
LeetCode——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 diffe原创 2015-06-21 13:26:29 · 273 阅读 · 0 评论 -
LeetCode——Climbing Stairs
题目:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?解答:class Solution {public: in原创 2015-06-22 00:22:07 · 307 阅读 · 0 评论 -
LeetCode——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 n原创 2015-06-23 23:31:28 · 298 阅读 · 0 评论 -
LeetCode——Merge Sorted Array
题目:Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note: You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additio原创 2015-06-24 23:13:12 · 370 阅读 · 0 评论 -
LeetCode——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.解答:/** * Defi原创 2015-06-24 23:18:51 · 347 阅读 · 0 评论 -
LeetCode——Binary Tree Level Order Traversal II
题目: Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).For example: Given binary tree {3,9,20,#,#,15,7},原创 2015-06-23 22:46:47 · 361 阅读 · 0 评论 -
LeetCode——Summary Ranges
题目: Given a sorted integer array without duplicates, return the summary of its ranges.For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].解答:class Solution {public: string numToStr(int n原创 2015-06-27 20:24:33 · 403 阅读 · 0 评论 -
LeetCode——Container With Most Water
题目:Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two原创 2015-06-28 00:59:22 · 283 阅读 · 0 评论 -
LeetCode——Populating Next Right Pointers in Each Node
题目:Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }Populate each next pointer to point to its next right node. If there原创 2015-07-19 16:04:26 · 442 阅读 · 1 评论