- 浏览: 212259 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yangdefeng95802:
也不换个行,这个谁爱看,估计你自己都不爱看!
CXF2.0.8+Spring+Hibernate -
l1i2n3y4u5n6:
你没有解惑,让我很迷惑
Apache2.2和tomcat集成更加简单了 -
micropang:
LJ
CXF2.0.8+Spring+Hibernate -
mayufenga1:
更本没说明白
Apache2.2和tomcat集成更加简单了 -
highriver:
什么公司,这样的人性。
Learning Day
在例子四的基础上,我们可以进行更加深入的分析,我们还是以100为例,我们其实在大部分情况下可以省略循环,如果数字的百位数以上包含1的个数为0,而十位数不为1,那么当个位数大于1以后,我们可以中断底层的循环,这样我们又节省了很多的运算:
public class GoogleFn {
private static int MAX = 1320000000;
private static int MAX2 = MAX / 10;
private static int MAX3 = MAX2 / 10;
private static int count(int n) {
int count = 0;
while (n > 0) {
int mod = n % 10;
if (mod == 1)
count++;
n = n / 10;
}
return count;
}
private static void method2() {
long start = System.currentTimeMillis();
int result = 20;
for (int i = 1; i < MAX3; i++) {
int number = i * 100;
int value = count(i);
for (int j = 0; j < 10; j++) {
for (int k = 0; k < 10; k++) {
if (value == 0 && j != 1 && k > 1) {
break;
}
int x = number + j * 10 + k;
result += value;
if (j == 1) {
result++;
}
if (k == 1) {
result++;
}
if (result == x && x != 0) {
print(x, start);
continue;
}
}
}
}
}
private static void print(int n, long start) {
System.out.println("Find " + n + ", "
+ (System.currentTimeMillis() - start) + "ms");
}
public static void main(String[] args) {
method1();
method2();
}
}
运行结果:
Find 1, 0ms
Find 199981, 16ms
Find 199982, 16ms
Find 199983, 16ms
Find 199984, 16ms
Find 199985, 16ms
Find 199986, 16ms
Find 199987, 16ms
Find 199988, 16ms
Find 199989, 16ms
Find 199990, 16ms
Find 200000, 16ms
Find 200001, 16ms
Find 1599981, 32ms
Find 1599982, 32ms
Find 1599983, 32ms
Find 1599984, 32ms
Find 1599985, 32ms
Find 1599986, 32ms
Find 1599987, 32ms
Find 1599988, 32ms
Find 1599989, 32ms
Find 1599990, 32ms
Find 2600000, 47ms
Find 2600001, 47ms
Find 13199998, 204ms
Find 35000000, 532ms
Find 35000001, 579ms
Find 35199981, 594ms
Find 35199982, 594ms
Find 35199983, 594ms
Find 35199984, 594ms
Find 35199985, 594ms
Find 35199986, 594ms
Find 35199987, 594ms
Find 35199988, 594ms
Find 35199989, 594ms
Find 35199990, 594ms
Find 35200000, 594ms
Find 35200001, 594ms
Find 117463825, 1860ms
Find 500000000, 8079ms
Find 500000001, 8079ms
Find 500199981, 8141ms
Find 500199982, 8141ms
Find 500199983, 8141ms
Find 500199984, 8141ms
Find 500199985, 8141ms
Find 500199986, 8141ms
Find 500199987, 8141ms
Find 500199988, 8141ms
Find 500199989, 8141ms
Find 500199990, 8141ms
Find 500200000, 8141ms
Find 500200001, 8141ms
Find 501599981, 8157ms
Find 501599982, 8157ms
Find 501599983, 8157ms
Find 501599984, 8157ms
Find 501599985, 8157ms
Find 501599986, 8157ms
Find 501599987, 8157ms
Find 501599988, 8157ms
Find 501599989, 8157ms
Find 501599990, 8157ms
Find 502600000, 8188ms
Find 502600001, 8188ms
Find 513199998, 8485ms
Find 535000000, 8844ms
Find 535000001, 8844ms
Find 535199981, 8844ms
Find 535199982, 8844ms
Find 535199983, 8844ms
Find 535199984, 8844ms
Find 535199985, 8844ms
Find 535199986, 8844ms
Find 535199987, 8844ms
Find 535199988, 8844ms
Find 535199989, 8844ms
Find 535199990, 8844ms
Find 535200000, 8844ms
Find 535200001, 8844ms
Find 1111111110, 18172ms
Find 199981, 16ms
Find 199982, 16ms
Find 199983, 16ms
Find 199984, 16ms
Find 199985, 16ms
Find 199986, 16ms
Find 199987, 16ms
Find 199988, 16ms
Find 199989, 16ms
Find 199990, 16ms
Find 200000, 16ms
Find 200001, 16ms
Find 1599981, 31ms
Find 1599982, 31ms
Find 1599983, 31ms
Find 1599984, 31ms
Find 1599985, 31ms
Find 1599986, 31ms
Find 1599987, 31ms
Find 1599988, 31ms
Find 1599989, 31ms
Find 1599990, 31ms
Find 2600000, 47ms
Find 2600001, 47ms
Find 13199998, 188ms
Find 35000000, 453ms
Find 35000001, 453ms
Find 35199981, 453ms
Find 35199982, 453ms
Find 35199983, 453ms
Find 35199984, 453ms
Find 35199985, 453ms
Find 35199986, 453ms
Find 35199987, 453ms
Find 35199988, 453ms
Find 35199989, 453ms
Find 35199990, 453ms
Find 35200000, 453ms
Find 35200001, 453ms
Find 117463825, 1406ms
Find 500000000, 6438ms
Find 500000001, 6438ms
Find 500199981, 6438ms
Find 500199982, 6438ms
Find 500199983, 6438ms
Find 500199984, 6438ms
Find 500199985, 6438ms
Find 500199986, 6438ms
Find 500199987, 6438ms
Find 500199988, 6438ms
Find 500199989, 6438ms
Find 500199990, 6438ms
Find 500200000, 6438ms
Find 500200001, 6438ms
Find 501599981, 6453ms
Find 501599982, 6453ms
Find 501599983, 6453ms
Find 501599984, 6453ms
Find 501599985, 6453ms
Find 501599986, 6453ms
Find 501599987, 6453ms
Find 501599988, 6453ms
Find 501599989, 6453ms
Find 501599990, 6453ms
Find 502600000, 6485ms
Find 502600001, 6485ms
Find 513199998, 6688ms
Find 535000000, 7031ms
Find 535000001, 7031ms
Find 535199981, 7031ms
Find 535199982, 7031ms
Find 535199983, 7031ms
Find 535199984, 7031ms
Find 535199985, 7031ms
Find 535199986, 7031ms
Find 535199987, 7031ms
Find 535199988, 7031ms
Find 535199989, 7031ms
Find 535199990, 7031ms
Find 535200000, 7031ms
Find 535200001, 7031ms
Find 1111111110, 14250ms
注意我们把MAX放大了100倍,这样才能看出差别,否则运算时间太短,就看不出来差异了。虽然这样做只提高了大约20%的性能,但是如果这个提升是发生在占用系统最多时间的部分,其累加效应将是惊人的。
评论
cherami 是不是没有理解题意!
value == 0 && j != 1 && k > 1 && result < number
这样才是万无一失,因为前三个条件对result没有影响,也就是不影响f(n)的结果,但是k增加的时候n是在变的,如果f(n)不变,而f(n)小于n,那么f(n+1)=f(n),所以f(n+1)必然小于n+1。
发表评论
-
Tomcat集群概要
2007-09-05 03:59 1996其实已经有很多文档了,不过还是老话,给自己备忘,总结些要注意的 ... -
Eclipse的一个问题
2007-09-05 06:13 1308最近遇到的,偶然间解决的,如果一些文件和目录已经被Worksp ... -
Java远程调试
2007-09-05 06:47 2306其实就是使用了JDK的JPDA,在启动服务器(Jboss或者T ... -
JDK5中没被重视的重要特性:instrumentation
2007-09-05 07:42 1650我们的产品中使用到这个特性了,主要是加载Jboss的AOP,另 ... -
得到当前方法
2007-08-09 13:53 1335在写代码的时候我们可能会需要当前的方法名,特别是在输出一些调试 ... -
使用AOP带来的问题
2007-08-02 04:57 1378AOP绝对是个好东西,但是因为大部分的AOP实现都是通过修改字 ... -
推荐一个Eclipse插件:Implementors
2007-08-01 05:06 1114也许有点老土了,但是这个插件确实是刚刚别人推荐给我的,而且很好 ... -
使用JBossCache作为Hibernate的二级缓存
2007-07-23 11:36 2094这个是最近的工作成果,使用JBossCache作为Hibern ... -
URLDataSource请求资源三次的问题
2007-07-13 04:58 1459这个是进公司的第二个任务,由于是多个应用服务器集群,而产生pd ... -
JSP的一个小误区
2007-07-12 11:15 973相信很多人在面试的时候都会被问到JSP和Servlet的区别, ... -
Hot Deploy成功
2007-07-12 11:24 1340前几天曾经抱怨新公司的开发环境太复杂,不能Hot Deploy ... -
文件删除不成功
2007-07-12 11:31 1075Java的功能在某些地方确实很有缺陷,File的delete方 ... -
AR何其多
2007-07-09 13:29 1177看了新公司的发布目录,感叹公司把Java相关的发布包用得出神入 ... -
太复杂了!!!
2007-07-03 12:58 1105今天总算是把工程在Eclipse下配置好了,而且没有任何错误, ... -
links for 2007-05-12
2007-05-12 14:21 1081Lucene Hack之通过缩小搜索结果集来提升性能 (1 ... -
Java序列化确实很慢啊
2007-04-25 06:37 2052我们的系统还使用古老的Ant1.5作为构建工具,而且做了一些定 ... -
使用工具修改代码时一定要谨慎
2007-04-19 03:21 1158今天早上来更新了下代码,发现自己负责的和Crystal Rep ... -
数据库可移植性重要吗?
2007-04-18 06:30 2105对于大部分应用而言,数据库可移植性可能不太重要,而一些完全使用 ... -
没落的Java社区
2007-04-17 09:27 1513感觉原来的几个Java社区日益没落,当然这个和Java世界的消 ... -
也谈Java基础的重要性
2007-04-10 07:33 2812呵呵,看到JDon上正在讨论j2se基础的重要性,忍不住也来说 ...
相关推荐
前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; ...
性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖大部分性能专项面试题性能测试面试题宝典--覆盖...
"性能测试工程师面试题汇总" 性能测试工程师面试题是指性能测试工程师在面试过程中遇到的常见问题,涵盖了性能测试的基础知识、LoadRunner 的使用、场景设置、脚本录制、参数设置、关联机制、调试技巧等多个方面。 ...
《微软面试 100 题系列》、《BAT 机器学习面试 1000 题系列》、《名企 AI 面试 100 题》以及《2021 最新大厂 AI 面试题》等题库,不仅覆盖了AI领域的多个方向,而且提供了详细的答案和解析,有助于求职者深入理解...
【JMeter性能测试详解】 JMeter是一款强大的性能测试工具,常用于模拟大量用户并发访问Web应用程序,以评估系统的性能和稳定性。以下将详细介绍JMeter的使用、线程组配置及性能测试的关键点。 **JMeter录制与过滤*...
Google面试题集锦 在当今社会,Google作为全球顶尖的科技公司,其招聘流程和面试题一直备受业界关注。公司的面试流程设计严谨,面试题目覆盖面广泛,既考察应聘者的基本技术知识,又深挖其逻辑思维能力、创造力以及...
云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备...
JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...
以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,就只能看自己了,毕竟每个人简历、实习、项目等都不一样。面试题...
rabbitmq面试:RabbitMQ相关的面试题和问题解析 rabbitmq面试:RabbitMQ相关的面试题和问题解析 rabbitmq面试:RabbitMQ相关的面试题和问题解析 rabbitmq面试:RabbitMQ相关的面试题和问题解析 rabbitmq面试:...
文档“python面试题搜集(六):110道Python面试题(上).md”和“python面试题搜集(六):史上最全python面试题详解(三).md”可能包含更多实战性问题,涉及Python性能优化、并发编程、设计模式以及Python与其他...
Java面试题-每日一题:String、StringBuffer、StringBuilder的区别
172份,7701页互联网大厂面试题 172份,7701页互联网大厂面试题 172份,7701页互联网大厂面试题
Java作为一门广泛使用的编程语言,其面试题涵盖了众多领域,包括基础、并发编程、网络、虚拟机、大数据处理以及各种框架。以下是对这些面试题集合的详细解析: 1. **BIO, NIO, AIO, Netty面试题 35道**: - **BIO*...
面试题5:如何以最简单的方式让电脑蜂鸣器发出声音 3.2 编程规范 面试题6:谈谈你对编程规范的理解或认识 面试题7:函数、变量等命名都有哪些规则 面试题8:写出bool、int、float、指针变量与“零值”比较的if语句 ...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
这些企业通常会设置一系列具有挑战性的面试题,以评估候选人的综合能力和潜在价值。本文将深入探讨世界500强面试题的特点、常见类型及应对策略,帮助求职者更好地准备此类面试。 1. 面试题分类 世界500强面试题通常...
常见C++面试题汇总(最全c语言面试题) 所包含文件: 1、华为C++内部培训材料 2、130道面试题.doc 3、C++试题.htm 4、C-C++ 程序设计员应聘常见面试试题深入剖析.mht 5、C语言面试题大汇总之华为面试题.txt 6、C语言...
覆盖范围:(40个VUE3.0面试题PDF、CSS面试题、JS面试题、REACT面试题 全栈面试题、小程序面试题、性能优化) # 前端面试题 非常重要 难度都是根据自己学习情况掌握的。 - 不能只靠背面试题 要去理解 面试题背后的...
11谷歌面试题精讲