返回信息流求程序,JAVA,C++都行
这是一条镜像帖。来源:北邮人论坛 / java / #35324同步于 2014/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
华为的一道机试题
dingjie246
2014/10/17镜像同步33 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
跃跃欲试啊
【 在 dingjie246 (dingo) 的大作中提到: 】
: [upload=1][/upload]求程序,JAVA,C++都行
通过『我邮2.0』发布
可能效率比较低,但是符合他的要求。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入形如 2 4 6 8 9这样的字符串
Scanner in=new Scanner(System.in);
String a=in.nextLine();
//将字符串每个数字提取出来形成数组
String[] b=a.split(" ");
//将字符串数组转换成int数组。
int[] c=new int[b.length];
for(int i=0;i<b.length;i++){
c[i]=Integer.parseInt(b[i]);
}
//提取int数组中的奇数偶数,并分别用一个arraylist保存
List c0=new ArrayList();
List c1=new ArrayList();
for(int i=0;i<c.length;i++){
if(c[i]%2==0){
c0.add(c[i]);
}
else{
c1.add(c[i]);
}
}
Collections.sort(c0);
Collections.sort(c1,new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);}
});
//循环输出排序后的结果。
for(int i=0;i<c1.size();i++){
System.out.print(c1.get(i)+" ");
}
for(int i=0;i<c0.size();i++){
System.out.print(c0.get(i)+" ");
}
}
}
【 在 dingjie246 的大作中提到: 】
: [upload=1][/upload]求程序,JAVA,C++都行
懒羊羊又来淘气
【 在 nuanyangyang 的大作中提到: 】
: : print(" ".join(sorted(map(int,split(input())))))
:
二楼排序可以直接用Collections的public static <T> void sort(List<T> list,Comparator<? super T> c)
>>nuanyangyang
你这是啥语言。。。
C++的思路(非最优)
1.读进所有数,统计个数
2.查找奇数,放到A数组,否则,放到B数组,
3.降序输出A数组,升序输出B,(用sort函数就行,别用冒泡了),注意临界值,A、B其中一个为空的情况应该就差不多了,
---
优化思路?
1.在存数的时候,奇数存奇数角标里,偶数存偶数角标里,每读一个,比较一次,更新一下奇数角标队列和偶数角标队列,输出,就按照角标大小输出。
public class TEST {
public static void main(String[] args) {
Integer[] input = {3,7,8,5,4,12,6};
Arrays.sort(input, new Comparator<Integer>(){
public int compare(Integer arg0, Integer arg1) {
if(arg0 % 2 == 1)
{
if(arg1 % 2 == 1)
return arg0 < arg1 ? 1 : -1;
return -1;
}
else
{
if(arg1 % 2 == 0)
return arg0 < arg1 ? -1 : 1;
return 1;
}
}
});
for(int i : input)
{
System.out.print(i +" ");
}
System.out.println("");
}
}
=。=好像挺奇葩
【 在 dingjie246 的大作中提到: 】
: [upload=1][/upload]求程序,JAVA,C++都行
【 在 HB0318 的大作中提到: 】
: 可能效率比较低,但是符合他的要求。
: [code=java]
: import java.util.ArrayList;
: ...................
谢谢!