数据结构
文章平均质量分 71
wjz748305545
这个作者很懒,什么都没留下…
展开
-
Sort List——链表的快速/归并排序
用O(nlgn)时间对单链表排序,常量空间参考:http://blog.csdn.net/xudli/article/details/16819545思路:排序——O(nlgn)——》快排或者归并,选择归并,将链表分成两等分进行归并排序ListNode *mergeSort(ListNode *head){// ListNode *p=head; ListNode *q=head;原创 2014-03-04 23:07:14 · 747 阅读 · 0 评论 -
【DFS】Subsets II
Given a collection of integers that might contain duplicates, S, return all possible subsets.Note:Elements in a subset must be in non-descending order.The solution set must not contain dupli原创 2014-03-18 20:58:09 · 523 阅读 · 0 评论 -
【DFS】Permutations
Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].解法一:DFS,递归时当前元素原创 2014-03-18 22:58:47 · 493 阅读 · 0 评论 -
【DFS】Combination Sum
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited numb原创 2014-03-20 20:49:51 · 435 阅读 · 0 评论 -
【DFS】Combination Sum II
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.Each number in C may only be used once in the combina原创 2014-03-20 21:03:56 · 414 阅读 · 0 评论 -
字符串匹配的KMP算法
转自:http://www.cnblogs.com/reynold-lei/p/3370026.html字符串匹配的KMP算法举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,转载 2014-04-16 22:06:16 · 427 阅读 · 0 评论 -
【DFS】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:"((()))", "(()())", "(())()", "()(())", "()()原创 2014-03-20 21:27:14 · 451 阅读 · 0 评论 -
【DFS】Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.Input:Digit st原创 2014-03-20 22:39:51 · 558 阅读 · 0 评论 -
【DFS】Palindrome Partitioning
Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s = "aab",Return [ ["aa","原创 2014-03-21 21:08:23 · 377 阅读 · 0 评论 -
【排序】Sort Colors
排序解法一:快排,递归实现public class Solution { public void qsort(int [] num, int low, int high){ int i = low, j=high; if(low >= high) return ; while(low <原创 2014-03-21 21:57:54 · 603 阅读 · 0 评论 -
【二叉树&前序遍历】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原创 2014-04-19 17:57:44 · 408 阅读 · 0 评论 -
【DFS&二叉树】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 3注意特殊情况:左右路径为负的情况,只能原创 2014-04-03 21:09:26 · 479 阅读 · 0 评论 -
Search Insert Position
二分搜索public class Solution { public int searchInsert(int[] A, int target) { int low = 0, high = A.length-1; if(high == -1) return 0; while(low <= high){原创 2014-03-25 16:59:13 · 362 阅读 · 0 评论 -
【DFS】Subsets
Given a set of distinct integers, S, return all possible subsets.Note:Elements in a subset must be in non-descending order.The solution set must not contain duplicate subsets.For exa原创 2014-03-18 20:56:57 · 392 阅读 · 0 评论 -
【DFS】Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example,If n = 4 and k = 2, a solution is:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]原创 2014-03-18 21:48:16 · 453 阅读 · 0 评论 -
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原创 2014-03-09 22:54:38 · 506 阅读 · 0 评论 -
【判断二叉搜索树】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.Th原创 2014-03-12 23:06:59 · 472 阅读 · 0 评论 -
【二叉树是否对称】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 f原创 2014-03-12 21:03:37 · 666 阅读 · 0 评论 -
二分查找分类总结
转自:http://blog.csdn.net/luckyxiaoqiang/article/details/8937978二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。题目列表:1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-12.转载 2014-03-08 19:20:51 · 643 阅读 · 0 评论 -
链表分类总结
转自:http://blog.csdn.net/walkinginthewind/article/details/7393134链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链表相关的面试题做了较为全面转载 2014-03-08 19:25:37 · 3085 阅读 · 0 评论 -
【二叉树的后续遍历】Binary Tree Postorder Traversal
题意:二叉树的后续遍历这里先使用递归的形式实现,以后再数据结构中补上非递归实现,对边界条件的处理要想好!public ArrayList postorderTraversal(TreeNode root) { if(root == null) return new ArrayList(); ArrayList list = new ArrayList();原创 2014-03-08 18:02:43 · 676 阅读 · 0 评论 -
二叉树的遍历-递归与非递归 - 海子
二叉树的遍历-递归与非递归 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现转载 2014-03-08 20:39:04 · 568 阅读 · 0 评论 -
【二叉树先序遍历】Binary Tree Preorder Traversal
题意:二叉树的前序遍历这里先提供递归实现,后续补上public ArrayList preorderTraversal(TreeNode root) { if(root == null) return new ArrayList(); ArrayList list = new ArrayList(); ArrayList l原创 2014-03-08 18:07:41 · 638 阅读 · 0 评论 -
【DFS】Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combinations.For example:Given "25525511135",return ["255.255.11.135", "255.255.111.35"]. (Order原创 2014-03-13 22:15:29 · 470 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
转自:http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想转载 2014-03-08 19:17:11 · 416 阅读 · 0 评论 -
【二叉树中序遍历】Binary Tree Inorder Traversal
一、递归实现:public ArrayList inorderTraversal(TreeNode root) { ArrayList list = new ArrayList(); if(root == null) return list; ArrayList leftList = inorderTraversal(root.原创 2014-03-09 20:42:50 · 725 阅读 · 0 评论 -
【二叉树层次遍历】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原创 2014-03-09 21:22:09 · 998 阅读 · 0 评论 -
Unique Binary Search Trees II
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.For example,Given n = 3, your program should return all 5 unique BST's shown below. 1 3原创 2014-03-13 20:09:32 · 406 阅读 · 0 评论 -
【DFS】Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations.For example,[1,1,2] have the following unique permutations:[1,1,2], [1,2,1], and [2,1,1].原创 2014-03-19 22:37:16 · 460 阅读 · 0 评论