数据结构
文章平均质量分 74
Cindy_zhong
这个作者很懒,什么都没留下…
展开
-
输出所有括号组合
题目:有n个括号,输出所有正确的括号组合括号组合个数:根据卡特兰数原理,总共的括号组合数是C(2n)(n)/(n+1)分析:可以模拟左右括号进出栈的情况计算所有正确的括号组合,如果有剩余的左括号,在任何时刻都可以进栈,栈中有未匹配的左括号时(进栈的左括号数大于右括号数),右括号可以进栈。当所有括号都进栈时,便可得到一个括号组合。 static int pairCount = 0;//b原创 2013-08-28 12:52:45 · 2601 阅读 · 0 评论 -
非递归遍历二叉树
使用栈辅助实现二叉树的非递归前序、中序和后序遍历前序遍历:遍历顺序:根->左子树->右子树分析:先访问根,右子树入栈,然后访问左子树void PreOrderNoRecursion(BinaryNode* bt){ stack s; BinaryNode* p = bt; while (p!=NULL || !s.empty()){ if (p==NULL){原创 2013-08-30 11:30:52 · 430 阅读 · 0 评论 -
数组调整
1、一个整数数组存在若干的正数、负数和零,如何调整使负数排在零的前边,零排在负数的前边。很容易想到使用快速排序的Partition方法,选择0作为基准,先将非负数调整到左边,正数调整到右边,然后对于非负数在进行一次调整。void ArrayArrange(int* pData, int len){ assert(pData!=NULL); int positiveIndex = 0;原创 2013-08-31 17:13:51 · 901 阅读 · 0 评论 -
Phone Number Divide
You are given a String number containing the digits of a phone number (the number of digits, n, can be any positive integer) . To help you memorize the number, you want to divide it into groups of con原创 2013-09-02 18:11:43 · 1337 阅读 · 0 评论 -
求和为某个值得全部序列
问题:Write a function that takes an array of five integers, each of which is between 1 and 10, and returns the number of combination of those integers that sum to 15. For example, calling the function原创 2013-09-02 18:51:31 · 672 阅读 · 0 评论 -
窗口滑动
Given a sequence of data (it may have duplicates), a fixed-sized moving window, move thewindow at each iteration from the start of the data sequence, such that(1) the oldest data element is remove原创 2013-09-02 16:29:53 · 599 阅读 · 0 评论 -
Sort a K sorted array
Question:given an array of n unsorted integers and each number is at most k positions away from its final sorted position, give an e-cient sorting algorithm. For example, let us consider k is 2, an原创 2013-09-03 16:38:25 · 925 阅读 · 0 评论 -
数组的最长连续的序列
问题:给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要求这个子数组中的数组是一个连续的序列(不需要排好序)。例如,给一个数组[4; 5; 1; 5; 7; 6; 8; 4; 1],最长的满足条件的子数组是[5; 7; 6; 8; 4]。因为该子数组中,5; 7; 6; 8; 4是一个连续的序列。思路:可以使用动态规划,满足条件的子序列,首先子序列中不能有重复出现原创 2013-09-05 12:26:02 · 803 阅读 · 0 评论