排序问题
来源:互联网 发布:江西工业工程学院知乎 编辑:程序博客网 时间:2024/05/29 19:04
给出一序列的正整数,数据之间用逗号分隔,将其按从小到排列,如果序列中存在连续的数,只取最小和最大值。例如,序列为
1,3,4,2,70,100,输出结果为1,4,70,100
思路:直接排序,然后判断有连续的数时,只取连续序列的首尾两个数
代码如下:
import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.BufferedReader;import java.io.PrintWriter;import java.io.IOException;import java.io.StreamTokenizer;import java.util.List;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class Main{ private Scanner cin; private PrintWriter cout; private static final boolean DEBUG = true; private String line; private void init() { try { if (DEBUG) { cin = new Scanner(new BufferedReader(new InputStreamReader(new FileInputStream("d:\\program\\intelj\\spoj\\src\\spoj.txt")))); } else { cin = new Scanner(new BufferedReader(new InputStreamReader(System.in))); } cout = new PrintWriter(System.out); } catch (IOException e) { e.printStackTrace();; } } private boolean input() { if (!cin.hasNextLine()) return false; line = cin.nextLine(); return true; } private void solve() { String[] str = line.split(","); List<Integer> nums = new ArrayList<>(); for (int i = 0; i < str.length; i++) { if ("".compareTo(str[i].trim()) == 0) continue; nums.add(Integer.parseInt(str[i])); } List<Integer> ans = new ArrayList<>(); Collections.sort(nums); for (int i = 0; i < nums.size(); i++) { int j = i; while (j + 1 < nums.size() && nums.get(j + 1) - nums.get(j) == 1) j++; if (j != i) { ans.add(nums.get(i)); ans.add(nums.get(j)); } else { ans.add(nums.get(i)); } i = j; } for (int i = 0; i < ans.size(); i++) { if (i != 0) cout.print(" "); cout.print(ans.get(i)); } cout.println(); cout.flush(); } public void run() { init(); while (input()) { solve(); } } public static void main(String[] args) { new Main().run(); }}
0 0
- 排序问题-归并排序
- 排序问题-快速排序
- 【排序问题】选择排序
- 排序问题
- 排序 问题
- 排序问题
- 排序问题~~
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序 问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 获取一个服务的开启状态
- SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
- 安卓动画——————>>>copy链接,后续看
- 目标检测——从RCNN到Faster RCNN 串烧
- shell命令执行hive脚本(hive交互,hive的shell编程)
- 排序问题
- java环境变量的配置原理
- 牌型种数
- 如何使用baksmali
- 【C语言】模拟一个strcat函数(不调用库函数)
- hibernate-Myeclipse自动创建并实现简单增删查改
- OC效率最高的排序方法
- GOF设计模式之DECORATOR(装饰)
- 排序算法之 堆排序算法(Heap Sort):(Python)