算法
文章平均质量分 67
waka401
这个作者很懒,什么都没留下…
展开
-
树的一些操作
package test; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Stack; import java.util.Vector; public class TreeOp原创 2012-10-28 21:47:51 · 275 阅读 · 0 评论 -
[转]经典字符串哈希算法
1 概述 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。 设计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无法比拟的,Hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然而Hash函数是Hash链表最核心的部分,本文尝试分析一些经典软件转载 2012-10-28 21:49:14 · 327 阅读 · 0 评论 -
筛选法之求素数
1。自然数是0,1,2…… 2。素数是2,3,5……(不包括1的只能背1和它本身整除的自然数) public class Test { public int prime(int num){ int n,m,i=0,s=0; label1: for(n=2;n { for(m=2;m { if(n%m==0)转载 2012-10-28 21:48:32 · 488 阅读 · 0 评论 -
Josephus 问题相关
package com.bupt.syc; import java.util.Iterator; import java.util.LinkedList; import org.junit.Test; public class Josephus { // 模拟解法 public static int JosephusWinner(int M, int N) throws Ex原创 2012-10-28 21:46:11 · 300 阅读 · 0 评论 -
题目:输入两个整数序列。其中一表示栈的 push 顺序,判断另一个序列有没可能是对应的 pop 顺序
package search; import java.util.Stack; public class PushPopSeries { public static boolean isPopSeries(int[] push,int[] pop){ if(push.length!=pop.length){ return false;原创 2012-10-28 21:44:54 · 321 阅读 · 0 评论 -
字符串组合
package test; import java.util.LinkedList; public class TestCombination { public static void combination(char[] arr) { int len = arr.length; int[] used = new int[len];原创 2012-10-28 21:47:14 · 185 阅读 · 0 评论 -
删除字符串中的重复字符
public class RemoveDuplicatedChar { public static void removeDuplicated(char[] str) { if (str == null) return; int len = str.length; if (len < 2)原创 2012-10-28 21:46:41 · 319 阅读 · 0 评论 -
输入N对括号,输出正确的配对组合
package com.mianshi.ms; import java.util.Stack; /** * 类说明 输入N对括号,输出正确的配对组合 */ public class NPair { public static Stack doCompute(int N){ Stack stack=new Stack(); if(N==1){原创 2012-10-28 21:45:27 · 1056 阅读 · 0 评论 -
一个整数组,长度为 n,将其分为 m 份,使各的和相等求 m 的最大值,比如{3,2,4,3,6} 可以分成{3,2,4,3,6,} m=1;{3,6}{2,4,3}m=2 {3,3}{2,4}{6}
package number; /** * @author ycsun E-mail:stevesun521@gmail.com * @version 创建时间:2012-10-3 下午2:59:49 类说明 */ public class ArrayOperation { private int[] arr; private int[] aux;原创 2012-10-28 21:42:47 · 1390 阅读 · 0 评论 -
最大递增(减)子序列
package number; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Stack; /** * @author ycsun E-mail:stevesun521@gmail.com * @version 创建时间:2012-10原创 2012-10-28 21:39:48 · 343 阅读 · 0 评论 -
12个高矮不同的人,排成两排
来源http://blog.csdn.net/jiyanfeng1/article/details/8036007 问题描述: 12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? 这个笔试题,很YD,因为把某个递归关系隐藏得很深. 问题分析: 我们先把这12个人从低到高排列,然后,选择6个人排在第一排,那么剩下的6个转载 2012-10-28 21:38:33 · 375 阅读 · 0 评论 -
poj1050 二维数组最大子序列矩阵和
public class Main { public int findMaxSumOneDimensions(int[] arr) { int len = arr.length; int max = arr[0], sum = max; for (int i = 1; i < len; i++) { su原创 2012-10-28 21:53:15 · 474 阅读 · 0 评论 -
O(n)回文子串算法
如何在O(n)时间内处理字符串以每个位置为中心的最长回文。这里转载一个Manacher算法的论文翻译。 原文地址: http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-finding-longest-palindrome-sub-string/ 其实原文说得是比较清楚的,只是英转载 2012-10-28 21:52:31 · 1051 阅读 · 0 评论 -
[转载]蓄水池抽样 均匀抽样
前段时间在BBS上看见一个问题: 如何等概率的从N个元素中选取出K个元素? 这个问题就是一个蓄水池抽样(Reservoir Sampling),算法可以如下描述 : Init : a reservoir with the size: k for i= k+1 to N转载 2012-10-28 21:50:54 · 353 阅读 · 0 评论 -
输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.
0,1 背包问题 package search; import java.util.Iterator; import java.util.Stack; public class Zte { private Stack stack = new Stack(); public void findNM(int sum, int n) { if (n < 0 ||原创 2012-10-28 21:44:00 · 1029 阅读 · 0 评论 -
程序员面试题精选100题(43)-n个骰子的点数[算法]
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HellWorld { class Program { public static void PrintSumProbabilityOfDices(int num)原创 2012-10-29 21:56:23 · 279 阅读 · 0 评论 -
一道面试题
给定一个字符串的集合,格式如:{aaabbbccc},{bbbddd},{eeefff},{ggg},{dddhhh}要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出{aaabbbcccdddhhh},{eeefff},{ggg}。 (1)请描述你解决这个问题的思路; (2)请给出主要的处理流程,算法,以及算法的复杂度 (3)请描述可能的改进。 回原创 2012-10-29 21:56:41 · 268 阅读 · 0 评论 -
已知一个函数f可以等概率的得到1-5间的随机数,问怎么等概率的得到1-7的随机数
题目是从CU上看到的,我的算法是: int rand7() { int a; while( (a=rand5()*5+rand5()) > 26 ); return (a-3)/3; } 可惜没办法验证,不知道这个算法是否正确?(问题一)。 (验证方法是通过双循环将两个rand5()分别换成1 2 3 4 5,但剔除掉(5,2)(5,3)(5,4转载 2012-10-28 21:50:05 · 1330 阅读 · 0 评论 -
Poj1088
package poj; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Iterator; import原创 2012-10-28 21:53:40 · 219 阅读 · 0 评论