牛客网——解救小易(水题)

点击打开链接

题目描述

有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为x i ,纵坐标为y i 的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。

输入描述:

第一行为一个整数n(n ≤ 1000),表示超超一共拥有n个陷阱。
第二行有n个整数xi,表示第i个陷阱的横坐标
第三行有n个整数yi,表示第i个陷阱的纵坐标
保证坐标都在草地范围内。

输出描述:

输出一个整数,表示小易最少可能多少秒就落入超超的陷阱
示例1

输入

复制
3
4 6 8
1 2 1

输出

复制
3

题意:求其他点距(1,1)的最短距离。因为他只能横着或竖着移动,所以d=x+y-2。

一直都用C++写代码的我,为了找java的实习,为了提高java水平,现在开始用java刷题了,深刻体会到真的是他们各有千秋啊,就例如这道题用java写好麻烦啊!

package com.company;
import java.util.*;

public class niukewang {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        List<Integer> arr = new ArrayList<Integer>();
        List<Integer> arr1 = new ArrayList<Integer>();
        List<Integer> arr2 = new ArrayList<Integer>();
        for(int i = 0; i < n; i++){
            arr.add(scan.nextInt());
        }
        for(int i = 0; i < n; i++){
            arr1.add(scan.nextInt());
        }
        for(int i = 0; i < n; i++){
            arr2.add(arr.get(i)+arr1.get(i)-2);

        }
       Collections.sort(arr2);
        System.out.println(arr2.get(0));
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36416680/article/details/80614389