算法、数据结构
文章平均质量分 50
KarsaWu
从“心”出发,锲而不舍!
展开
-
二叉排序树(二叉查找树)
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值。(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。(3)它的左,右子树也分别是二叉排序树。二叉排序树有类似折半查找的特点,又采用了名字表作为存储结构,因而是一种动态查找表二叉排序树的插入二叉排序树是一种动态树表,特点是:树的结构通常不是转载 2011-11-22 11:08:50 · 5882 阅读 · 0 评论 -
子数组最大和 动态规划求解
最近在看精选微软等公司经典的算法面试100题里面的第三题,求最大子数组和,具体问题如下: 题目: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子原创 2011-12-02 15:05:23 · 897 阅读 · 0 评论 -
查找最小的k个元素
5.查找最小的k个元素题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。#include#includeusing namespace std;void printarray(const vector Array,int min){ for(int i=0;i cout cout}原创 2011-12-05 09:08:28 · 496 阅读 · 0 评论 -
在二元树中找出和为某一值的所有路径
在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条路径:10, 12和10, 5, 7。#include原创 2011-12-04 11:36:43 · 531 阅读 · 0 评论 -
finding anagrams(颠倒字母而成的字) of a given word; 编程珠玑之如何找出一个单词的换位词; 如何找出字典中的兄弟单词
昨天去百度笔试,遇到这题目回来,在网上还果真找到了,转载一下作为学习笔记。这篇文章主要是描述一个单词的变体或者变换。昨天问题的描述:在编程珠玑里面是这样的:据说是百度的一个面试题,是这样描述的:其实总结下问题描述其实是差不多的:给定一个字典(即单词序列),用户输入一个单词,求出字典中单词的变换?一:看到这个题目后,直觉转载 2012-05-07 09:53:14 · 1138 阅读 · 0 评论 -
判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas转载 2012-05-09 17:44:28 · 732 阅读 · 0 评论 -
Trie树|字典树的简介及实现
Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点不包含字符,除根节点外每一个节转载 2012-05-10 15:27:36 · 730 阅读 · 0 评论