重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个应该比较简单吧,保持一个5个数的排序数组,然后比较下就可以了,如果数据不满5个,就直接添加排序,如果满5个就从中间折半查找比较下,满足就踢出最小的,移动下位置
在中山等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作专业公司,公司网站建设,企业网站建设,品牌网站建设,全网整合营销推广,成都外贸网站制作,中山网站建设费用合理。
首先蓝桥杯练习题类名必须为Main 规定在1秒内运行完代码,你用递归方法调用效率很低的,方法的开销是很大的。换一种方法
可以。
参加比赛选手代码的主类名必须是Main,否则会被判为无效代码。
注意不要使用package语句。
如果代码中引用了类库,在提交时必须将import语句中与程序的其他部分同时提交,只允许使用Java自带的类库。
我也出现了运行错误,但是找到了解决方案,是数组越界:请看你的运行错误是否根源和我一样:
根据给出的测试用例,在自己的机器上能够正确运行,提交上去以后就出现了运行错误。测试平台还有很多测试数据我们看不到,当出现一个测试数据,在产生的结果超出我们没有考虑充分的情况下,就可能出现运行错误。如下代码,是 蓝桥杯:基础练习 特殊回文数 的正确代码(java),当我第一次提交时出现了运行错误,后来检查是数组设置小了,导致数组越界。代码中注释说明的部分。
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner stdin = new Scanner(System.in);
int num=stdin.nextInt();
//int[] result=new int[10]; =======》!运行错误的地方
int[] result=new int[10000];
Arrays.fill(result, -1);
int index=0;
for(int i=0;i10;i++)
for(int j=0;j10;j++)
for(int k=0;k10;k++) {
//处理6位数
if((i+k+j)*2==num i!=0) {
int tmp = i*100000+j*10000+k*1000+k*100+j*10+i;
if(tmp10000) { //确保是5或6位数
result[index] = tmp;
index++;
}
}
//处理5位数
if(((i+j)*2+k)==num) {
int tmp = i*10000+j*1000+k*100+j*10+i;
if(tmp10000) {
result[index] = tmp;
index++;
}
}
}
Arrays.sort(result);
for(int i=0;iresult.length;i++) {
if(result[i]==-1 )
continue;
System.out.println(result[i]);
}
}
}
当我再遇到:此类问题在过来补充。先去刷题了。
一、单选题目(主要考擦java基础知识 好像25道)
1、String与StringBuffer区别 如:
2、final中的return switch中的break和return 执行的顺序和执行结果
3、for; do...while(); while()....do;循环的执行过程 涵盖 、 -- 的考核
4、循环中的break与continue
5、数组的定义:如:
有如下数组:
byte[] array1,array2[]
byte array3[][]
byte[][] array4
假设每个变量都已初始化,一下哪一条语句会导致编译错误?
A、array2 = array1; B、array2 = array3; C、array2 = array3;
D、A并且B ; E、A并且C ; F、B并且C ;
6、执行一下代码后,哪个结论是正确的?
A、s[10]为""; B、s[9]为null;
C、s[0]为未定义; D、s.length()为10;(详见《Java习题语言习题与解析》一书。P46)
7、构造函数定义的考核、继承、多态(文字描述的判断)
8、递归函数程序的考核,选择输出结果
9、静态成员,与非静态成员
10、函数重载(在多选里也出现、主要是选择哪个跟哪个构成重载,或否)
11、final static 的考核:如
A、static class TT{}
B、private class TT{}
C、abstract class TT{}
D、final public class TT{}
E、final abstract class TT{}
12、String对象分析一下程序:
public class X{
public static void main(String[] args){
String s = new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s = " world!";
}
}
该程序执行结果为:
A、编译成功,执行后输出:“Hello”
B、编译失败
C、编译成功,执行后输出"Hello word!"
D、编译成功,执行后引起异常
答案:A
13、静态方法构造方法 重载函数 覆盖的定义
14、文件操作
15、线程???(记不清)
二、多选题(五道)
1、重载:指出下列哪些方法与方法public void add(int a){}重载()
A、public int add(int a)
B、public void add(long a)
C、public void add(int a,int b)
D、public void add(float)
2、内部类与static
下面哪几种陈述是成立的?
A、一个内部类可声明为静态的
B、一个匿名内部类可声明为私有的
C、一个匿名内部类可声明为公共的
D、一个匿名内部类可声明可以继承一个抽象类
E、一个匿名内部类可声明为保护型
答案:AB
3、内部类的声明:
下面哪两个内部类的声明是合适的?
1.public class OuterClass{
private double d1 = 1.0;
//插入内部类代码
}
A、static class InnerOne{
public double methoda(){return d1;}
}
B、static class InnerOne{
static double methoda(){return d1;}
}
C、private class InnerOne{
public double methoda(){return d1;}
}
D、protected class InnerOne{
static double methoda(){return d1;}
}
E、public abstract class InnerOne{
public abstract double methoda(){return d1;}
}
答案:CE
在静态方法中不能访问静态成员,D也是静态方法中反问非静态成员。
4、下列陈述对默认的构造方法是成立的?
A、默认的构造方法为方法变量进行初始化
B、编译程序会为每一个类创建默认的构造方法
C、默认的构造方法调用其超类的无参数构造方法
D、默认的构造方法初始化在类中声明的实例变量
E、当一个仅有带参数的构造方法时,编译程序不会给这个类创建默认的构造方法
F、当一个类没有其他构造方法时,编译程序才为其创建默认的构造方法
答案:DEF
5、一道关于多态的选择题
三、填空题 5道
填空题,主要学会察API,开始会有API提供,可以进行运行调试。
1、文件操作、IO流的操作
2、重写父类方法
3、从API找方法,实现功能。(具体题目忘了)
4、接口???
5、。。。。
四、代码完善题
这道题,要规范的按照题目要求来做,
题目大概是这样:要求对26个字母实现,这样的运算
1、对26个字母求补集
2、对两个集合(都是字母) 求交集
3、求并集、求并集分两种:第一、把两个相加,第二、把两个重复出现的删除,
4、求差集,两个集合,或者是,一个集合对全集26个字母求差集。
/**
* Created by han on 2018/3/20.
*/
public class Quicksort {
private int[] numbers;
private int number;
public void sort(int[] values) {
if (values ==null || values.length==0){
return;
}
this.numbers = values;
number = values.length;
quicksort(0, number - 1);
}
private void quicksort(int low, int high) {
int i = low, j = high;
int pivot = numbers[low + (high-low)/2];
while (i = j) {
while (numbers[i] pivot) {
i++;
}
while (numbers[j] pivot) {
j--;
}
if (i = j) {
exchange(i, j);
i++;
j--;
}
}
if (low j)
quicksort(low, j);
if (i high)
quicksort(i, high);
}
private void exchange(int i, int j) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
public static void main(String[] args) {
Quicksort quicksort = new Quicksort();
int[] val = new int[10000];
for (int i = 0; i 10000 ; i++) {
val[i] = i+1;
}
quicksort.sort(val);
for (int i = 0; i 10000; i++) {
System.out.println(quicksort.numbers[i]);
}
}
}