
数据结构和算法
文章平均质量分 53
jkli52051315
这个作者很懒,什么都没留下…
展开
-
求二叉树中节点的最大距离(比较适合我理解思路)
[color=violet][size=xx-large]求二叉树中节点的最大距离[/size][/color]求二叉树中节点的最大距离,两个节点的距离的定义是这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2。这是论坛上的一道算法题,我目前想到的解法是:二叉树中任意两个节点间的最大距离,那么其中一个节点必定是层次最深的一个节点,记该节点为A...原创 2011-05-11 21:53:24 · 321 阅读 · 0 评论 -
有一亿个随机数,不排序如何找出其中位数【转】
有一亿个随机数,不排序如何找出其中位数题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。 关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N...原创 2011-05-30 15:46:37 · 381 阅读 · 0 评论 -
斐波那契数列--真的少了一块吗?
某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65? 其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后 两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。 ...原创 2011-09-06 14:16:40 · 312 阅读 · 0 评论 -
斐波那契数列算法分析
斐波那契数列算法分析背景:假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子?在一月底,最初的一对兔子交配,但是还只有1对兔子;在二月底,雌兔产下一对兔子,共有2对兔子;在三月底,最老的雌兔产下第二...原创 2011-09-06 14:11:44 · 179 阅读 · 0 评论 -
打印Zig-zag矩阵
输入一个数字i,然后生成i×i的矩阵,矩阵的内容沿45度线递增如输入4,则矩阵为0 1 5 62 4 7 123 8 11 139 10 14 15 Java源代码如下:import java.io.*; public class Zigzag { public static void ...原创 2011-05-25 15:53:44 · 345 阅读 · 0 评论 -
打印螺旋矩阵
求职过程遇到的一道面试题,当时没有做出来,回来想出几种方法,其中大多是“蛮力”解法,不得不陷入一堆的 i、j 循环之中。最后想出一种递归解法,现记录如下。题目如下:输入N, 打印 N*N 螺旋矩阵比如 N = 3,打印:1 2 38 9 47 6 5 N = 4,打印:1 2 3 412 13 14 511 16 15 610 9 8 7 递归解法如下: +---------...原创 2011-05-25 15:35:36 · 239 阅读 · 0 评论 -
【面试】【扩展】快速寻找满足条件(两个数的和为指定值)的两个数
从上篇文章我们可以看出寻找两个数和为指定值的较好解法是:先把数组排序,i = 0,j = N-1,这样a[i]+a[j]正好是一个中间数,如果想减小sum的值,就一直缩小j,如果想增加sum的值,就增加i。设上面的问题算法为getSumNum(int[] a,int sum),arr为数组,sum为和扩展问题是:如果寻找三个数字或是任意数字呢?三个数字的想法:首先还是数...原创 2011-05-14 10:34:05 · 128 阅读 · 0 评论 -
【面试】快速寻找满足条件(两个数的和为指定值)的两个数
[quote]【面试】快速寻找满足条件(两个数的和为指定值)的两个数[/quote]题目: 能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的数字,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。解法:思路1: 暴力穷举O(n^2)思路2: 对数组预排序O(NlogN),然后遍历该数组,...原创 2011-05-14 10:16:39 · 179 阅读 · 0 评论 -
寻找第K大的数的方法总结
[color=violet][size=xx-large] 寻找第K大的数的方法总结 [/size][/color] 今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 ...原创 2011-05-14 09:48:07 · 199 阅读 · 0 评论 -
二叉树重建【转自北大ACM】
[color=violet][size=xx-large]二叉树重建[/size][/color]二叉树的遍历学列:先序序列,中序序列,后序序列,逆先序序列,逆后续序列只要有一个中序序列再加上另一个序列就可唯一地重建原来二叉树。可到这里测试下:http://acm.pku.edu.cn/JudgeOnline/problem?id=2255#include using ...原创 2011-05-11 22:19:17 · 153 阅读 · 0 评论 -
【笔试】两个大数相乘
package com.baidu.ecom;//import java.math.BigInteger;import java.util.Scanner;public class BigMultiTest {public static void main(String[] args) { Scanner reader=new Scanner(Syste...原创 2011-09-16 14:09:54 · 123 阅读 · 0 评论