牛客网算法练习题目——(二分法问题)

牛牛最近搬到了一座新的城镇,这个城镇可以看成是一个一维的坐标系。城镇上有n个居民,第i个居民的位置为aia_iai​。现在牛牛有m个搬家方案,在第i个方案中他会搬到位置xix_ixi​。

/**
 * Copyright (C), 2018-2020
 * FileName: solve001
 * Author:   xjl
 * Date:     2020/7/8 9:13
 * Description: 题目描述 牛牛最近搬到了一座新的城镇,这个城镇可以看成是一个一维的坐标系。城镇上有n个居民,第i个居民的位置为aia_iai​。现在牛牛有m个搬家方案,在第i个方案中他会搬到位置xix_ixi​。  俗话说的好,远亲不如近邻。现在牛牛想知道,对于每个搬家方案,搬家后与最近的居民的距离为多少。
 */
package second_category;

import org.junit.Test;

public class solve001 {
    //通过率只有80%
    /**
     * 远亲不如近邻
     *
     * @param n int整型 居民个数
     * @param m int整型 方案个数
     * @param a int整型一维数组 居民的位置
     * @param x int整型一维数组 方案对应的位置
     * @return int整型一维数组
     */
    public int[] solve(int n, int m, int[] a, int[] x) {
        //返回的结果
        int[] result = new int[m];
        //遍历两次的x的数据 每一个在数组中最小的元素
        for (int i = 0; i < m; i++) {
            int min=Math.abs(x[i]-a[0]);
            for (int j = 0; j < n; j++) {
                int res=Math.abs(x[i]-a[j]);
                min=min

 

你可能感兴趣的:(数据结构与算法)