永发信息网

某公司编程笔试题。java

答案:5  悬赏:10  手机版
解决时间 2021-11-25 22:16
  • 提问者网友:愿为果
  • 2021-11-25 16:02
某公司编程笔试题。java
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-11-25 16:32
public static void main(String[] args) throws IOException {
int[] ary = new int[1000];
for (int i = 0; i < 1000; i++) {
ary[i] = i;
}
ary[100] = 101;//把100换成别的变相于100被去掉
System.out.println(dare(ary, 0, ary.length));
}
public static int dare(int[] ary, int start, int end) {
for (int i = (start + end) / 2; i < end - 1; i++) {
if (ary[i] != ary[i + 1] - 1)
return ary[i] + 1;
}
return dare(ary, start, (start + end) / 2);
}
全部回答
  • 1楼网友:一袍清酒付
  • 2021-11-25 19:50
简单:for循环
快速:二分查找
  • 2楼网友:梦中风几里
  • 2021-11-25 18:30
对啊 这就是一个排序查找的问题,你只需要看看哪种查找方式最省时间就好了。
  • 3楼网友:患得患失的劫
  • 2021-11-25 16:59
//写的有点繁琐,只供参考。
int[] num=new int[9999];
List list=new ArrayList();
for(int i=1;i<=10000;i++)
{
list.add(i);
}
Random rand=new Random();
list.remove(127);//抽出的数如果用Random需要避免出现0
for(int i=0;i {
num[i]=Integer.parseInt(list.get(i).toString());
}
int result=0;
int t=1,p=10000;
for(int i=0;i {
if(num[i]==1)
{
t=0;
}
}
for(int i=0;i {
if(num[i]==10000)
{
p=0;
}
}
for(int i=0;i {
if(i>0)
{
if((num[i-1]+1)!=num[i])
{
result=num[i]-1;
}
}
}
if(t!=0)
{
result=t;
}
if(p!=0)
{
result=p;
}
System.out.println("抽出的数为:"+result);
  • 4楼网友:十年萤火照君眠
  • 2021-11-25 16:38
int num;

for(int i=0;i if(++num==list.get(i)){
system.out.print("挖掉的数为:"+num);

}
}
是不是大概这么个意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯