摘要: 题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:则输出:yes又如输入7、4、6、5 ;因没有对应的二元查找树的后序遍历是次序列,则输出no简单的分析一下这道题:后序遍历也就是说最后的一个节点是根节点,二元查找树又要求它的左子树不大于(或不小于)根节点,右子树不小于(或不大于)根节点。因此,思路也就来了:先把它的根节点拿出来,然后从首元素开始遍历,与根节点比较,直到找出大于根节点的元素来,然后再遍历后面的是否有小于根节点的元素(只考虑左子树不大于根节点, 阅读全文
posted @ 2013-11-08 15:25 idealing 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。两种思路,无非就是时间与空间的妥协。限制空间的时候要对原数组进行排序,最好的时间复杂度是O(nlogn),由此可见,当牺牲一部分空间的时候会换来时间复杂度的降低。进而再想到利用一个大小为K的临时数组,来存储K个最小的值,在遍历原数组的同时,更新临时数组里的数据就OK了。那么,现在的问题就是更新临时数组,怎样才能每访问一个数据,都能使临时数组里的数据是最小的K个。自然想到选出临时数组里面的最大值,和原数组里的新访问的值进行比较,判断是否替换最大值。遍历原数组的时间复杂度是O 阅读全文
posted @ 2013-11-06 14:44 idealing 阅读(3040) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。如:输入整数25,则输出 10 7 8;10 15输入整数22,则输出 10 7 5思路是运用前序遍历的递归方法,访问这课二叉树,在访问的同时,用一个栈来存放每个节点的数据,这样,当到达叶子节点是就判断其和是不是与输入的整数相等,相等的话就遍历这个栈。解题的难点就是存储路径,一开始的想法是复制节点,构造一个只用到左子树的单链表来存储,不过,感觉这样做下去会很繁琐,所以就换成构造栈来存储数据。这样通过递归的方法来push与pop数据,很般配。要注意的是,下面在构造二 阅读全文
posted @ 2013-11-01 22:31 idealing 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。#include#include#define M 100#define m 10struct minStack{int top;int tail;int *valueStack;int *indexStack;};void InitStack(minStack& s){s.top = 0;s.tail = 0;s.valueStack = (int*)malloc(sizeof(int)*M);s.indexStack = (int*)malloc(siz 阅读全文
posted @ 2013-10-31 19:27 idealing 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。Case1:输入数组:1,-2,3,10,-4,7,2,-5 和最大连续子数组为3,10,-4,7,2 则输出18Case2:输入数组:3,-2,3,10,-4,7,2,-5 和最大连续子数组为3,-2,3,10,-4,7,2 则输出19程序写的比较简单,看了网上的知道自己的缺陷:没有考虑输入为空与和最大为0的区别。。。 #include #include void InitArray(int*& A,int M){ ... 阅读全文
posted @ 2013-10-30 20:30 idealing 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目的要求如上图所示测试用例(先构造二叉查找树)void buildBSTreeNode(BSTreeNode* head,int data){node = (BSTreeNode*)malloc(sizeof(BSTreeNode));node->data = data;node->m_Left = NULL;node->m_Right = NULL;BSTreeNode* p = head;while(p){ if(node->data > p->data){ if(!p->m_Right){ p->m_Right = node; ... 阅读全文
posted @ 2013-10-26 23:49 idealing 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目的要求很简单,就是输出这样一个蛇形矩阵。。。这道题是在面试亚马逊实习生时遇到的,当初的思路是针对每行元素的增加个数来编程,不过现在来想,按照每行元素增加的话要考虑的因素就太多了,不如这样以元素坐标来思考,来的简单明了。下面以4阶矩阵为例:由上图可得规律:①坐标之和i + j = k - 1;②k为奇数时,i为减,j为增;偶数时,i为增,j为减;③当k n 时,元素坐标以n - 1为起点递减(相应另一坐标递增),元素个数递减;比较难实现的是体现k > n 时的情况,用两个变量完成,一个累计每行元素个数,一个表示元素坐标(当然还有k表示行,count表示元素总个数)#include#in 阅读全文
posted @ 2013-10-20 22:11 idealing 阅读(956) 评论(0) 推荐(0) 编辑
摘要: Let's assume that there is a simple market for beans. Every day there is a published bean price in the market. Traders can buy or sell at the published price. There is a trader who time travelled to future and brought back the price information for a number of days in the future. If you have thi 阅读全文
posted @ 2013-10-16 20:23 idealing 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 建表语句如下:create table L_LOG_RECORD(LOG_ID number(6) not null primary key,LOG_USER varchar2(50) not null,LOG_OPERATION varchar(50) not null,LOG_OBJECT varchar2(100) not null,LOG_TIME date not null);怎奈,通过Hibernate逆向工程后,生成的实体:package com.idealing.model;import java.sql.Timestamp;import javax.persistence.C 阅读全文
posted @ 2013-06-13 23:01 idealing 阅读(4067) 评论(1) 推荐(0) 编辑
摘要: 首先,要添加ezmorph-1.0.3.jar和morph-1.1.1.jar这两个jar。然后在struts.xml里面,添加json-default<package name="default" extends="struts-default,json-default"><action name="TypeAction_*" class="TypeAction" method="{1}"> <result name ="VIEW_SUCCESS&quo 阅读全文
posted @ 2013-06-13 22:45 idealing 阅读(270) 评论(0) 推荐(0) 编辑