一道经典JAVA面试题

问题描述

客户端从服务器读取数据,是要花费一定时间的。客户端发送价格1.1给服务器猴返回客户端的数据如下格式:价格排名1.11001.2100..........2.0100客户端发送价格2.1给服务器猴返回客户端的数据如下格式:2.1992.2992.398..........3.096价格是递增的,排名也是递增的,也可能与以前相同。价格的范围是1-100如何以最快的方法找到客户端要的排名对应的最低价格。如:需要找第2名,最低价格

解决方案

解决方案二:
二分查找
解决方案三:
二分算法想过,不过这个比一般的都难。最好有具体过程
解决方案四:
怎么没人顶起来,自己顶
解决方案五:
觉得算法不算难吧就一个排序不知道可否用HashMap来存数据
解决方案六:
问题是这个是每次客户端请求服务器,服务器才会给客户端传一段数据,这个过程是要时间的。
解决方案七:
服务器端返回的数据是有序的吗?如果有序的就一个循环遍历一下第N-1次rs(i)>rs(i-1)的时候rs(i)就是第N小的呗例如11235这个i从1开始53211这个i从length开始
解决方案八:
学习0...
解决方案九:
1.服务器端数据存储的方式是什么?数据库?文件?还是已经读取到内存中(Collection?Array?Hash?是否已经排序?)存储方式明确了才知道用哪种方式更合适。2.如果是排序了的Collection或数组,保可使用Collections提供的方法进行二分查找,二分查找的速度已经够快了,Hash在这里不太合适。3.数组是没有排序的,先排序一下。4.如果是在文件里,具体问题具体决定,数据量的大小起关键作用。5.数据库的话,直接用SQL语句查询出结果。具体问题,具体分析。
解决方案十:
该回复于2010-10-09 14:26:11被版主删除
解决方案十一:
引用8楼inhibitory的回复:

1.服务器端数据存储的方式是什么?数据库?文件?还是已经读取到内存中(Collection?Array?Hash?是否已经排序?)存储方式明确了才知道用哪种方式更合适。2.如果是排序了的Collection或数组,保可使用Collections提供的方法进行二分查找,二分查找的速度已经够快了,Hash在这里不太合适。3.数组是没有排序的,先排序一下。4.如果是……

路过,学习!
解决方案十二:
顶一个。用数组?
解决方案十三:
说说存在什么地方,什么形式。放在数据库里不是事儿。
解决方案十四:
该回复于2010-12-07 13:24:50被版主删除
解决方案十五:
放到一个HashMap
其他方案:
没有看懂题意,能解释得一下不。。。
其他方案:
可能没描述清楚。这个题目没那么简单的。服务器每次返回的不是所有的数据,而是一部分数据。getDateFromServer(Stringprice){//服务器返回price从price+1之间的数据,注意price在服务器端的值为1到100,//这里返回的数据是[price+0.01][排名]}所以不可能把所有的数据全部取出来,只能通过计算,一次次的判断取哪个区间的值,才能最快的取回来。
其他方案:
可能没描述清楚。这个题目没那么简单的。服务器每次返回的不是所有的数据,而是一部分数据。getDateFromServer(Stringprice){//服务器返回price从price+1之间的数据,注意price在服务器端的值为1到100,//这里返回的数据是[price+0.01][排名]//比如price参数是1.0returnnewString[][]{{1.0100},{1.01100},..........2.0100}}所以不可能把所有的数据全部取出来,只能通过计算,一次次的判断取哪个区间的值,才能最快的取回来。
其他方案:
自己在顶
其他方案:
输入参数到底是价格还是排名?
其他方案:
该回复于2010-10-11 09:31:11被版主删除
其他方案:
学习..
其他方案:
求解!
其他方案:
输入参数是价格
其他方案:
顶起来
其他方案:
不用那么麻烦,在数据库里面就可以直接完成检索比如存储的表叫Goods表,其中有两个字段一个是价格(price),一个是排名(ranking)SQL语句这么写:selectprice,rankingfromGoodswhereprice>=xorderbypriceASC,rankingdesc

x为传入的价格值!
其他方案:
如:需要找第2名,最低价格selectprice,rankingfromGoodswhereranking=2orderbypriceASC,rankingdesc

其他方案:
可以这么做,先猜测一个价格,例如5,获得一系列排名,查看需要的排名是否在这个范围之内,如果是,就在区间内二分查找之,否则确定是在5-10还是1-5,再猜测个价格,可以取中间值,相当于一个二分查找。注意,如果一个价格区间的所以排名都是需要的排名,则继续搜索更低的价格排名
其他方案:
该回复于2010-12-02 15:48:09被版主删除
其他方案:
面试题总是这么龌龊实际上增加个接口多简单。
其他方案:
学习··
其他方案:
经典中的经典

时间: 2024-09-12 18:45:25

一道经典JAVA面试题的相关文章

100+经典Java面试题及答案解析

Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码的可理解性.   面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象.下面的章节我们会逐个分析这些特性.   封装   封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内部的数据.在Java当中,有3种修饰符:public,private和protected.每一种修饰符给其他的

经典java面试题

一.你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M: Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation). V: View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果. C: Controller(Control layer),控制器,也就

java多线程问题-有一道Java面试题,没太理解明白,求大神指点啊~

问题描述 有一道Java面试题,没太理解明白,求大神指点啊~ package test2; /** 设计4个线程,其中两个线程每次对i增加1,另外两个线程对i每次减少1 @author liuyu * */ public class Test { private int i ; private synchronized void inc(){ i ++; System. out .println(Thread.currentThread().getName()+ "--inc--" +

经典Java线程面试题70道

下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒.Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点. 2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务.不同的进

java-一个经典的Java面试题,异常处理

问题描述 一个经典的Java面试题,异常处理 什么情况下,finally中的代码不会执行(前提是执行到了try里面) 解决方案 在程序try中,执行了system.exit()方法.finally里面的代码就不会被执行了 解决方案二: http://my.oschina.net/MiniBu/blog/338123 解决方案三: try 中的代码没有任何异常时.在 try 中执行了退出等,都不会执行 finally 中的代码 解决方案四: 都是对的,但是第一个回答最早. 解决方案五: 用了got

代码分析-一道Java笔试题,求解答(关于类的加载与初始化)

问题描述 一道Java笔试题,求解答(关于类的加载与初始化) 自己查了一些资料,还是看不懂这个程序的输出结果,求各位详细解释初始化和执行过程,谢! public class Alibaba { public static int k = 0; public static Alibaba t1 = new Alibaba("t1"); public static Alibaba t2 = new Alibaba("t2"); public static int i =

一个TXT文件中包含百万数字,每个数字一行,请从中选出最大的十个数. 这是一道java面试题。

问题描述 这是一个java面试题,不太会,就蒙头写了一个.如下:读出来,分组每1000个选10个,1000次.不知道靠不靠谱,请指点,多谢! 解决方案 同意502220545说的使用数组,只是不需要再进行排序,只需要再定义一个变量保存数组中最小的一个数,每读取一个数据就与这个最小的数进行对比,如果大于这个最小的数,那么将数据中等于最小数的一个数据替换为刚刚读出的数,然后再从数组中得到最小的数更新到最小数的变量中,然后继续循环,这样就可以省掉比较数组和排序的工作了.public static vo

15道非常经典的Java面试题 附详细答案_java

试题如下: 参考答案: import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by ysc on 7/26/16. */ public class Interview {

最有价值的50道java面试题 适用于准入职Java程序员_java

下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja