题目描述
有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi ,纵坐标为yi 的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。
输入描述:
第一行为一个整数n(n ≤ 1000),表示超超一共拥有n个陷阱。 第二行有n个整数xi,表示第i个陷阱的横坐标 第三行有n个整数yi,表示第i个陷阱的纵坐标 保证坐标都在草地范围内。
输出描述:
输出一个整数,表示小易最少可能多少秒就落入超超的陷阱
示例1
输入
3 4 6 8 1 2 1
输出
3
题目链接:https://www.nowcoder.com/practice/cd763d8541fc4243b8d3b967bb6d6b6a?tpId=85&tqId=29841&tPage=1&rp=1&ru=/ta/2017test&qru=/ta/2017test/question-ranking
题解:本来开始以为还要用广搜做,但是之后发现原来是数学题,还是比较简单的,注意一下数据输入后的转换存储。
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 5 public class Main { 6 7 public static void main(String[] args) throws IOException { 8 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 9 String line = in.readLine(); 10 int n = Integer.parseInt(line); 11 line = in.readLine(); 12 String[] xs = line.split(" "); 13 int[] x = new int[n]; 14 for(int i = 0; i < n; i++) { 15 x[i] = Integer.parseInt(xs[i]); 16 } 17 line = in.readLine(); 18 String[] ys = line.split(" "); 19 int[] y = new int[n]; 20 for(int i =0 ; i < n; i++) { 21 y[i] = Integer.parseInt(ys[i]); 22 } 23 int min = Integer.MAX_VALUE; 24 for(int i = 0; i < n; i++) { 25 min = min < (x[i] + y[i] - 2) ? min : (x[i] + y[i] - 2); 26 } 27 System.out.println(min); 28 } 29 30 }