优雅的水晶裤头


私信TA

用户名:dotcpp0632681

访问量:341

签 名:

女人只会影响我敲代码的速度

等  级
排  名 6317
经  验 1374
参赛次数 0
文章发表 3
年  龄 20
在职情况 学生
学  校 新疆理工学院
专  业 软件工程

  自我简介:

TA的其他文章


import java.util.Scanner;

public class dotcpp {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int n = sc.nextInt();//数组长度
       int[] arr = new int[n];//定义数组
       for (int i = 0; i < n; i++) {
           arr[i] = sc.nextInt();//输入数组中元素数值
       }
       int m = sc.nextInt();//输入给定值个数
       int[] arr1 = new int[m];
       int mid = 0;
       for (int i = 0; i < m; i++) {
           arr1[i]=sc.nextInt();
           if (arr1[i] <= arr[0]) {//如果给定的数小于数组arr的第一个值,则输出arr数组第一个值
               System.out.println(arr[0]);
           } else if (arr1[i] >= arr[n - 1]) {//如果发定的数大于数组arr的最后一个值,则输出arr数组最后一个值
               System.out.println(arr[n - 1]);
           } else {//在序列内。用二分查找
               int left = 0, right = n;
               while (left < right) {
                   mid = left + (right - left) / 2;
                   if (arr1[i] >arr[mid]) {
                       left = mid + 1;
                   } else {
                       right = mid;
                   }
               }
               int sum=right;
               if(arr[sum]-arr1[i]<arr1[i]-arr[sum-1]){
                   System.out.println(arr[sum]);
               }else{
                   System.out.println(arr[sum-1]);
               }
           }
       }

   }
}

 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区