赶海咯
描述
小星有一位济南的朋友小Y,最近济南的天气实在太热了,想要来青岛度假,想要去赶海,但是赶海需要知道,涨潮和退潮的情况,所以就让本地人的小星,来调查涨潮和退潮的情况。
不幸的是,小星把每一天调查的数据放在了书房,但是在开窗户的时候,风把数据的纸张吹乱了,幸亏小星还能记得这些数据的特征
他开始测量退潮时的水位,他的第二次测量是涨潮时的水位,之后继续在退潮和涨潮之间交替测量。
所有涨潮测量值都高于所有退潮测量值。
注意到,随着时间的推移,涨潮只会变高,退潮只会变低。
现在请你帮助小星把数据恢复原状吧
输入描述
第一行,输入调查数据的数量
第二行,输入n个数据,表示调查的数据(保证在int范围)
输出描述
输出恢复后的数据顺序,每个数据直接用空格隔开
样例输入 1
8
10 50 40 7 3 110 90 2
样例输出 1
10 40 7 50 3 90 2 110
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> data(n);
for (int i = 0; i < n; i++) {
cin >> data[i];
}
sort(data.begin(), data.end());
vector<int> result(n);
int start = 0, end = n - 1;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
result[i] = data[start++];
} else {
result[i] = data[end--];
}
}
for (int i = 0; i < n; i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:可以利用面向对象的思想去解决问题,先去生产一个水藻类,而每个生成的水藻有自己的days属性,每过三天一个水藻就会生出days=1的新水藻,最后再将新水藻的个数全部增加到总到list当中
package com.yan.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
List<shuizao> list = new ArrayList<>();
list.add(new shuizao(1));
System.out.println("输入存活天数");
Scanner scanner = new Scanner(System.in);
int nextInt = scanner.nextInt();
for (int i = 0; i < nextInt; i++) {
List<shuizao> addlist = new ArrayList<>();//新增的水藻个数
for (shuizao s : list) {
if (s.days >= 3)
addlist.add(new shuizao(1));
s.days++;
}
list.addAll(addlist);
System.out.println("水藻当天的总数:"+list.size()+"\t"+"水藻当天增加的数量:"+addlist.size());
}
}
//生成的每一个水藻
static class shuizao{
int days;
public shuizao(int days){
this.days = days;
}
}
}