数据结构
文章平均质量分 70
nudt_oys
An AC a day,keeps WA away~
展开
-
LeetCode 654 Maximum Binary Tree(构建二叉搜索树)
Given an integer array with no duplicates. A maximum tree building on this array is defined as follow:The root is the maximum number in the array.The left subtree is the maximum tree constructed f原创 2017-08-06 19:11:58 · 1067 阅读 · 0 评论 -
LeetCode 199 Binary Tree Right Side View(二叉树层序遍历)
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.For example:Given the following binary tree, 1原创 2017-07-14 22:41:47 · 738 阅读 · 0 评论 -
LeetCode 102 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,null,null,15,7], 3 / \ 9 20原创 2017-07-13 19:51:18 · 936 阅读 · 0 评论 -
LeetCode 257 Bianry Tree Paths(二叉树路径保存)
Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree: 1 / \2 3 \ 5All root-to-leaf paths are:["1->2->5", "1->3"]题目大意:给出一个二叉树,返回其所原创 2017-06-25 23:28:08 · 581 阅读 · 0 评论 -
LeetCode 129 Sum Root to Leaf Numbers(递归求和)
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find the total原创 2017-07-12 20:04:54 · 941 阅读 · 0 评论 -
LeetCode 563 Binary Tree Tilt(递归 + 中间结果保存)
Given a binary tree, return the tilt of the whole tree.The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree原创 2017-06-30 19:59:05 · 447 阅读 · 0 评论 -
LeetCode 538 Convert BST to Greater Tree(二叉树的右中左遍历)
Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.Exampl原创 2017-06-29 19:19:44 · 522 阅读 · 0 评论 -
LeetCode 606 Construct String from Binary Tree
You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way.The null node needs to be represented by empty parenthesis pair "()". And you原创 2017-06-29 09:11:29 · 366 阅读 · 0 评论 -
LeetCode 160 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 ↘原创 2017-05-19 17:09:29 · 656 阅读 · 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].Note: Recursive solution is t原创 2017-05-28 09:56:05 · 609 阅读 · 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].Note: Recursive solution is tr原创 2017-05-28 09:48:56 · 657 阅读 · 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,null,2,3], 1 \ 2 / 3return [1,3,2].Note: Recursive solution is原创 2017-05-28 09:29:13 · 825 阅读 · 0 评论 -
LeetCode 445 Add Two Numbers II(栈+链表)
You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return原创 2017-05-09 10:55:47 · 415 阅读 · 0 评论 -
CSUOJ 1898 复盘拉火车(栈+队列模拟)
Description小GJ和小XS没事做用扑克牌玩起了小时候的拉火车游戏。规则如下,GJ和XS交替依次把手中的牌放到桌面上,由于GJ年长,所以他总是先放。桌面上会构成一个新的序列,当这个序列中新放入的点数与以前存在的某个点数重复的时候,这两张重复的牌和中间的牌就依次全部放回所放牌一方的序列尾部。 例如桌面上有牌A 10 2 3 5此时GJ放下一张2则桌面上剩下A 10而2 3 5 2这个序列原创 2017-04-25 11:10:52 · 602 阅读 · 0 评论 -
LeetCode 19 Remove Nth Node From End of List(二级指针)
Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the l原创 2017-05-15 22:12:20 · 580 阅读 · 0 评论 -
LeetCode 98 Validate Binary Search Tree(判断二叉搜索树)
Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node’s key. The r原创 2017-07-05 20:14:38 · 915 阅读 · 0 评论 -
LeetCode 617 Merge Two Binary Trees(递归合并二叉树)
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.You need to merge them into a new binary tree原创 2017-06-27 23:51:40 · 2457 阅读 · 0 评论 -
LeetCode 225 Implement Stack using Queues(利用队列实现栈)
Implement the following operations of a stack using queues.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Return whet原创 2017-07-18 13:21:46 · 1266 阅读 · 0 评论 -
POJ 3264 Balanced Lineup(线段树区间查询)
Balanced Lineup DescriptionFor the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decide原创 2017-08-12 13:33:43 · 451 阅读 · 0 评论 -
LeetCode 304 Range Sum Query 2D - Immutable(维护二维数组的前缀和)
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1) and lower right corner (row2, col2).The above rectangle (with the red bo原创 2017-08-04 18:37:10 · 878 阅读 · 0 评论 -
LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).For example:Given binary tr原创 2017-08-11 21:09:14 · 874 阅读 · 0 评论 -
LeetCode 303 Range Sum Query - Immutable(维护前缀和)
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example:Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRan原创 2017-08-03 19:17:45 · 812 阅读 · 0 评论 -
LeetCode 155 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原创 2017-08-10 13:04:42 · 848 阅读 · 0 评论 -
HDOJ 1754 I Hate It(线段树)
I Hate ItProblem Description很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行原创 2017-08-02 13:25:40 · 273 阅读 · 0 评论 -
LeetCode 108 Convert Sorted Array to Binary Search Tree(二分 + 递归建树)
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.题目大意:给出一个已经排好序的数组,构建一棵二叉搜索树。解题思路:采用二分法,递归地构建BST。注意二分结束条件。代码如下:/** * Definition for a binary原创 2017-07-24 21:26:23 · 567 阅读 · 0 评论 -
LeetCode 23 Merge k Sorted Lists(归并)
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.题目大意:合并k个有序链表并分析时间复杂度。解题思路:每两个链表进行一次合并,再对合并好的链表重复上述过程。k个链表需要合并O(k)次,每次合并需要O(n)的时间,所以总的时间复杂度为O(kn)。原创 2017-05-19 22:00:41 · 945 阅读 · 0 评论 -
LeetCode 21 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.题目大意:合并两个有序链表,要求新链表的节点由合并之前的两个链表拼接而成。解题思路:类似于归并排序,利用二级指原创 2017-04-19 09:23:49 · 530 阅读 · 0 评论 -
LeetCode 513 Find Bottom Left Tree Value(二叉树层序遍历)
Given a binary tree, find the leftmost value in the last row of the tree.Example 1:Input: 2 / \ 1 3Output:1Example 2: Input: 1 / \ 2 3 / /原创 2017-07-19 19:49:55 · 391 阅读 · 0 评论 -
LeetCode 515 Find Largest Value in Each Tree Row(二叉树层序遍历)
You need to find the largest value in each row of a binary tree.Example:Input: 1 / \ 3 2 / \ \ 5 3 9 Output: [1, 3, 9]题目大意:给出一棵二叉树,求出每一层的最原创 2017-07-18 19:44:42 · 335 阅读 · 0 评论 -
LeetCode 232 Implement Queue using Stacks(利用栈实现队列)
Implement the following operations of a queue using stacks.push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of queue.peek() -- Get the front element.empty(原创 2017-07-18 18:56:06 · 524 阅读 · 0 评论 -
LeetCode 637 Average of Levels in Binary Tree(二叉树层序遍历)
Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.Example 1:Input: 3 / \ 9 20 / \ 15 7Output: [3, 14.5, 11]Explanat原创 2017-07-21 19:05:21 · 1269 阅读 · 0 评论 -
LeetCode 307 Range Sum Query - Mutable(树状数组 || 线段树)
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. The update(i, val) function modifies nums by updating the element at index i to val.Example:Given原创 2017-07-30 21:18:55 · 862 阅读 · 0 评论 -
LeetCode 450 Delete Node in a BST(删除BST节点)
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST.Basically, the deletion can be divided int原创 2017-05-24 16:12:37 · 586 阅读 · 0 评论 -
LeetCode 147 Insertion Sort List(链表)
Sort a linked list using insertion sort.代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ void swap(int* a, int* b) {原创 2017-04-23 19:36:57 · 270 阅读 · 0 评论 -
POJ 3321 Apple Tree(DFS + 树状数组)
Apple TreeDescriptionThere is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the转载 2016-08-13 23:02:51 · 589 阅读 · 0 评论 -
POJ 2155 Matrix(二维树状数组)
MatrixDescriptionGiven an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row and j-th column. Initially we have A[i, j] = 0 (1 We can change the m原创 2016-08-12 22:09:58 · 396 阅读 · 0 评论 -
POJ 1182 食物链(并查集)
食物链Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y原创 2016-07-17 21:51:57 · 212 阅读 · 0 评论 -
POJ 1195 Mobile phones(二维树状数组)
Mobile phonesDescriptionSuppose that the fourth generation mobile phone base stations in the Tampere area operate as follows. The area is divided into squares. The squares form an S * S ma原创 2016-08-12 17:27:53 · 323 阅读 · 0 评论 -
HDOJ 1856 More is better(并查集)
More is betterProblem DescriptionMr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are原创 2016-08-24 16:32:27 · 350 阅读 · 0 评论 -
HDOJ 1232 畅通工程(并查集)
畅通工程Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正原创 2016-07-14 16:44:17 · 366 阅读 · 0 评论