首页 理论教育 Java程序员面试真题库

Java程序员面试真题库

时间:2023-10-30 理论教育 版权反馈
【摘要】:活动内容除了吃喝玩乐之外,还要做些互动的游戏,需要从专家或顾问中随机选出几名组成一队来完成游戏,一次TB活动,一共有20个人参加。,N1),现在要在这N个磁盘上“顺序分配”M个分区,每个分区大小为P[j](j=0,…请设计调度算法,使得所有任务完成所需要的时间最短。

Java程序员面试真题库

1.实现对一组无序的字母进行从小到大排序(区分大小写),当两个字母相同时,小写字母放在大写字母前。要求时间复杂度为O(n)。

2.猿媛之家有个传统,就是每个月都要组织专家与顾问进行一次团建活动(Team Building,TB),每个专家或顾问都可以带家属参加。活动内容除了吃喝玩乐之外,还要做些互动的游戏,需要从专家或顾问中随机选出几名组成一队来完成游戏,一次TB活动,一共有20个人(含专家、顾问以及他们的家属)参加。已知如果随机选取3位专家或顾问以及该3位专家或顾问的家属,一共有220种组合。请问如果每次随机选取4个专家或顾问及该4位专家或顾问的家属,会有多少种组合?

3.有N个磁盘,每个磁盘大小为D[i](i=0,…,N−1),现在要在这N个磁盘上“顺序分配”M个分区,每个分区大小为P[j](j=0,…,M−1),顺序分配的意思是:分配一个分区P[j]时,如果当前磁盘剩余空间足够,则在当前磁盘分配;如果不够,则尝试下一个磁盘,直到找到一个磁盘D[i+k]可以容纳该分区,分配下一个分区P[j+1]时,则从当前磁盘D[i+k]的剩余空间开始分配,不再使用D[i+k]之前磁盘未分配的空间,如果这M个分区不能在这N个磁盘完全分配,则认为分配失败。请实现函数is_allocable判断给定N个磁盘(数组D)和M个分区(数组P),是否会出现分配失败的情况?举例:磁盘为[120,120,120],分区为[60 60,80,20,80]可分配,如果为[60,80,80,20,80],则分配失败。

4.请实现方法:print_rotate_matrix(intmatrix,int n),该方法用于将一个n×n的二维数组逆时针旋转45°后打印,例如,下图显示一个3×3的二维数组及其旋转后屏幕输出的效果。

5.给定正整数x,定义函数A(n)=1+x+x^2+x^3+…+x^n(n为整数且≥0),已知乘运算的时间远大于加运算,输入x、n,如何尽可能快地求出A(n)?(www.xing528.com)

6.请用两个队列实现栈的先进后出的操作,希望该栈的push/pop时间复杂度尽量小。请写出push/pop的代码。

7.假设有一个中央调度机,有n个相同的任务需要调度到m台服务器上去执行,由于每台服务器的配置不一样,因此,服务器执行一个任务所花费的时间也不同。现在假设第i个服务器执行一个任务需要的时间为t[i]。例如,有2个执行机a与b,执行一个任务分别需要7min和10min,有6个任务待调度。如果平分这6个任务,即a与b各3个任务,则最短需要30min执行完所有任务。如果a分4个任务,b分2个任务,则最短28min执行完。请设计调度算法,使得所有任务完成所需要的时间最短。输入m台服务器,每台机器处理一个任务的时间为t[i],完成n个任务,输出n个任务在m台服务器的分布。int estimate_ process_time(int[] t,int m,int n)。

8.n(1,2,3,…,n)个元素有N!个不同的排列,将这n!个数按字典序排列,并编号0,1,…,n!−1,每个编号为其字典序的值,如n=3时,字典排序为123,132,213,231,312,321,这6个数的字典序分别为0,1,2,3,4,5,现给定n,请输出字典序为k 的排列(0≤k<n!)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈