題目連結
題意:
猴子?(之類的生物...)的選美大會
測資只有一組,前半先提供有 N 隻母猴的身高(已遞增排序)
然後有Q個query,可以看成要解Q組答案
每組提供一個公猴身高值,要從母猴當中求:
1. 小於公猴身高的最大值
2. 大於公猴身高的最小值
解法:
看完範例輸出入就很好下手
先用陣列存所有母猴身高,連排序都省了
首先判斷第1個輸出
先從陣列尾端往回搜尋,第一個比公猴小的就是答案
搜到陣列頭還沒結果就輸出X
第2個輸出同理
從頭到尾第一個比公猴大的就是答案
程式(Java):
題意:
猴子?(之類的生物...)的選美大會
測資只有一組,前半先提供有 N 隻母猴的身高(已遞增排序)
然後有Q個query,可以看成要解Q組答案
每組提供一個公猴身高值,要從母猴當中求:
1. 小於公猴身高的最大值
2. 大於公猴身高的最小值
解法:
看完範例輸出入就很好下手
先用陣列存所有母猴身高,連排序都省了
首先判斷第1個輸出
先從陣列尾端往回搜尋,第一個比公猴小的就是答案
搜到陣列頭還沒結果就輸出X
第2個輸出同理
從頭到尾第一個比公猴大的就是答案
程式(Java):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class Main { | |
public static void main(String args[]) { | |
Scanner sc = new Scanner(System.in); | |
int N = sc.nextInt(); | |
int lady[] = new int[N]; | |
for (int i = 0; i < N; i++) { | |
lady[i] = sc.nextInt(); | |
} | |
int Q = sc.nextInt(); | |
while (Q-- > 0) { | |
int q = sc.nextInt(); | |
StringBuilder sb = new StringBuilder(""); | |
for (int i = N - 1; i >= 0; i--) { | |
if (q > lady[i]) { | |
sb.append(lady[i]); | |
break; | |
} | |
if (i == 0) { | |
sb.append("X"); | |
break; | |
} | |
} | |
for (int i = 0; i < N; i++) { | |
if (q < lady[i]) { | |
sb.append(" " + lady[i]); | |
break; | |
} | |
if (i == N - 1) { | |
sb.append(" X"); | |
break; | |
} | |
} | |
System.out.println(sb.toString()); | |
} | |
} | |
} |
留言
張貼留言