易截截图软件、单文件、免安装、纯绿色、仅160KB

Java面试题:猫吃老鼠问题

问题:现有n个老鼠围成一圆圈,有一只猫从任意位置开始吃老鼠,每次都隔一个老鼠吃,请给出最后一个老鼠的编号?题目要求是任给老鼠数n,输出猫最后吃的老鼠的编号。
我的解法:
1.简单的方法就是模拟这个过程。使用一个数组代表老鼠是否被吃掉,循环遍历。
2.改进一下的方法,其实这个问题就是一个m=2的约瑟夫环问题。
package com.easyProblem;
/*
* 现有n个老鼠围成一圆圈,有一只猫从任意位置开始吃老鼠,每次都隔一个老鼠吃,
* 请给出最后一个老鼠的编号?题目要求是任给老鼠数n,输出猫最后吃的老鼠的编号
*/
public class CatEatMouseProblem {
private int[] m;

public static void main(String[] args) {
CatEatMouseProblem cm = new CatEatMouseProblem();
System.out.println("=======低效的方法========");
long startTime =System.currentTimeMillis();
System.out.println(cm.easyWork(1111178));
long endTime=System.currentTimeMillis();
System.out.println("耗时:" + (endTime-startTime));

System.out.println("=======改进的方法========");
startTime =System.currentTimeMillis();
System.out.println(cm.betterWork(1111178));
endTime=System.currentTimeMillis();
System.out.println("耗时:" + (endTime-startTime));

}
public int easyWork(int n){
m = new int[n];

int mouse = n;
int flag = 0;

m[0] = 1;
mouse--;

while(mouse>1){
flag = next(next(flag));
m[flag] = 1;
mouse--;
}
return next(flag)+1;
}

public int next(int start){
for(int i=start+1; i<start+m.length; i++){
int pos = i%(m.length);
if(m[pos]!=1) {
return pos;
}
}
return -1;
}

public int betterWork(int n){
int m = 2;
int s = 0;
for(int i=2; i<=n-1; i++) s=(s+m)%i;
return s+2;
}

=======低效的方法========
125204
耗时:953
=======改进的方法========
125204
耗时:31


相关文档:

java中全角转换为半角的方法

在获取文本的时候,经常遇到数据格式的问题,需要判断或转换。
本文旨在解决全角符号转换为半角符号的问题。
网上大体有两种方法:转换编码或则替换。
我使用的是转换编码
1. string checkStr="123456";
2. //判断是否包含全角字符[1]
3. if(checkStr.length() != checkStr.getBytes().length) ......

Flex+Java连接SQLServer数据库

首先,做一点说明。Flex是不能直接连接数据库的,这一点大家需要知道,它只能间接地连接数据库。Flex中提供了三种方式:HttpService,WebService 和RemoteObject。其中HttpService可以直接获取XML中的数据,还可以通过JSP,ASP以及PHP读取数据库中的数据,这个比较简单,而且网上也有很多例子,我就不多说了。WebService我不 ......

java鼠标拖放文件(Windows &amp; Linux适用)

/*通过鼠标拖放文件到制定控件中,并判断是否为文件,如果是,则调用文件发送方法ChatFrame.SendFile(finalpath);
*/
class TextDropTargetListener implements DropTargetListener
{
CODER Coder = new CODER();
CHAT_FRAME ChatFrame;
/**
Constructs a listener.
@param aTextArea the ......

[最著名]的国外Java网站

这几天,在网上搜了很多关于java的东西,现在给大家总结一下,非常有用哦,很多东西我们在国内是无法了解到的
java程序员必去的国外网站
http://www.onjava.com
每周都有新文章发表
http://www.developer.com/java
由Gamelan.com 维护的Java技术文章网站
http://www.java.net
Sun公司维护的一个Java社区网站
http:/ ......

java连接SqlServer2005(netbeans)

花了大半天的时间终于解决了问题,下面分享一下我的过程:
我的系统安装的是jdk6,netbeans和Mycrosoft SqlServer 2005,java连接数据库一般要分六部走
1.注册驱动
2.用驱动管理类创建连接
3.创建语句statement封装sql脚本语句
4.执行
5.处理返回的结果
6.关闭相关连接
在这里连接的是SqlServer2005,属于第三方驱动 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号