- 博客(24)
- 收藏
- 关注
原创 O(logn)求Fibonacci数列
【转】http://zhedahht.blog.163.com/blog/static/25411174200722991933440/ 题目:定义Fibonacci数列如下: / 0 n=0f(n)= 1 n=1 \ f(n-1)+f(n-2) ...
2011-07-21 09:28:19 82
原创 圆圈中最后剩下的数字
[转]http://zhedahht.blog.163.com/blog/static/2541117420072250322938/题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:本题就是...
2011-07-21 09:12:57 45
原创 从上往下遍历二元树
[转]http://zhedahht.blog.163.com/blog/static/2541117420072199173643/题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入 8 / \ 6 10 /\ /\ 5 7 9 11输出8 6 10 5 7 9 11。...
2011-07-19 15:08:46 58
原创 并归排序法求逆序数
[转]http://blog.csdn.net/lewutian/article/details/4549656 并归排序法求逆序数 收藏 逆序对(inversion pair)是指在序列{a0,a1,a2...an}中,若ai<aj(i>j),则(ai,aj)上一对逆序对。而逆序数 (inversion number)顾名思义就是序列中逆序对的个数。例如: 1 2 3是顺序,...
2011-07-19 11:05:06 64
原创 求二元查找树的镜像
[转]http://zhedahht.blog.163.com/blog/static/2541117420072159363370/ 题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入: 8 / \ 6 10 /\ /\5 7 9 ...
2011-07-16 11:37:25 52
原创 在排序数组中查找和为给定值的两个数字
【转】 http://zhedahht.blog.163.com/blog/static/2541117420072143251809/ 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,...
2011-07-16 10:05:01 63
原创 查找链表中倒数第k个结点
【转】http://zhedahht.blog.163.com/blog/static/2541117420072114478828/题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:为了得到倒...
2011-07-16 09:22:29 45
原创 求1+2+...+n
【转】http://zhedahht.blog.163.com/blog/static/2541117420072915131422/ 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散...
2011-07-16 09:07:47 85
原创 翻转句子中单词的顺序
【转】http://zhedahht.blog.163.com/blog/static/254111742007289205219/题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。分析:由于编写字符串相关代码能够反映...
2011-07-16 08:53:22 58
原创 判断整数序列是不是二元查找树的后序遍历结果
[转]http://zhedahht.blog.163.com/blog/static/25411174200725319627/题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10...
2011-07-16 08:41:16 53
原创 查找最小的k个元素
【转】http://zhedahht.blog.163.com/blog/static/2541117420072432136859/题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nl...
2011-07-15 09:07:25 106
原创 在二元树中找出和为某一值的所有路径
【转】http://zhedahht.blog.163.com/blog/static/254111742007228357325/ 题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 ...
2011-07-15 08:33:20 46
原创 求子数组的最大和
[转]http://zhedahht.blog.163.com/blog/static/254111742007219147591/题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10,...
2011-07-15 08:23:00 48
原创 贪心:Huffman
package com.iteye.caoruntao.huffman;import java.util.Comparator;import java.util.PriorityQueue;/** * @author caoruntao * */public class Huffman { private PriorityQueue<Charact...
2011-07-14 10:13:22 75
原创 动态规划:Coin Change
转:http://blog.csdn.net/kongming_acm/article/details/57259261424: Coin ChangeResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K528166StandardSuppose there are ...
2011-07-14 09:51:15 181
原创 动态规划:What Goes Up
转:http://blog.csdn.net/kongming_acm/article/details/57259221263: What Goes UpResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K896219StandardWrite a program t...
2011-07-14 09:13:20 153
原创 动态规划:To the Max 最大子矩阵
[转]http://blog.csdn.net/kongming_acm/article/details/5725917 1092: To the MaxResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K1256268StandardGiven a two-dime...
2011-07-13 15:40:50 137
原创 动态规划:medic
[转]http://blog.csdn.net/kongming_acm/article/details/57259152526: medicResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE1s16384K551143Standard辰辰是个天资聪颖的孩子,他的梦想是成为世界上...
2011-07-13 10:28:47 94
原创 动态规划:Square Coins
问题描述:People in Silverland use square coins. Not only they have square shapes but also their values are square numbers. Coins with values of all square numbers up to 289 (=172), i.e., 1-credit coins,...
2011-07-13 09:27:58 173
原创 动态规划:ZOJ2042_Divisibility
【转】http://fuliang.iteye.com/blog/143188 问题:Consider an arbitrary sequence of integers. One can place + or - operators between integers in the sequence, thus deriving different arithmetical express...
2011-07-12 16:59:46 100
原创 回溯法:子集和问题
问题: 给定n个正整数wi和一个正整数m,在这n个正整数中找出一个子集,使得子集中的正整数之和等于m。 解的形式: 设定一个n元组(x0,x1,...xn-1),如果wi包含在这个子集中,xi就等于1,反之等于0. BoundFunction: 算法伪代码: /** * */package com.iteye.caoru...
2011-07-06 10:58:51 1093
原创 回溯法:n皇后问题
Bound function: 算法伪代码: /** * n-皇后问题 */package com.iteye.caoruntao.nqueen;/** * @author caoruntao * */public class NQueen { private int x[]; private int n;...
2011-07-05 09:35:08 179
原创 回溯法:0-1背包问题
[转]http://fuliang.iteye.com/blog/1653080-1背包问题:给定n种物品和一背包.物品i的重量是wi, 其价值为ui,背包的容量为C. 问如何选择装入背包的物品,使得装入背包中物品的总价值最大? 分析: 0-1背包是子集合选取问题,一般情况下0-1背包是个NP问题. 第一步 确定解空间:装入哪几种物品 第二步 确定易于搜索的解空间结构: 可以用数组p,w分别...
2011-07-03 22:29:55 121
原创 动态规划:0/1背包问题
转:http://blogold.chinaunix.net/u2/62281/showart_488401.html动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物...
2011-07-02 17:09:42 96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人