当前位置: 首页 > 知识库问答 >
问题:

最近配对法

姬飞飙
2023-03-14

这是如何我试图实现最接近的对algo在我的java代码,但似乎有错误的返回

这是我的代码,请更正代码以便得到正确答案。

import java.util.*;
import java.lang.Math;
public class Main
{
    public static int closest(int[][] array, int n){
        int dmin = (int)Math.sqrt((int)Math.pow((array[0][0]-array[1][0]),2)+(int)Math.pow((array[0][1]-array[1][1]),2));
        int index1=0,index2=0;
        for(int i = 0 ; n-1 > i ; i++ ){
            for(int  j = 0 ; i+1 > j ; j++ ){
                int d = (int)Math.sqrt((int)Math.pow((array[i][0]-array[j][0]),2)+(int)Math.pow((array[i][1]-array[j][1]),2));
                if(d < dmin){
                    dmin = d;
                    index1 = i;
                    index2 = j;
                }
            }
        }
        return index1;
    }
    public static void main(String[] args) {
        int n;
        Scanner obj = new Scanner(System.in);
        n = obj.nextInt();
        int[][] array = new int[n][n];
        for(int i = 0 ; i < n; i++){
            for(int j = 0 ; j < n; j++){
                int c = obj.nextInt();
                array[i][j] = c;
            }
        }
        System.out.println(closest(array,n));
    }
}

共有1个答案

袁单鹗
2023-03-14

你的循环包括组合j=i,它只给出d=0

 类似资料:
  • 校验者: @DataMonk2017 @Veyron C @舞空 翻译者: @那伊抹微笑 sklearn.neighbors 提供了 neighbors-based (基于邻居的) 无监督学习以及监督学习方法的功能。 无监督的最近邻是许多其它学习方法的基础,尤其是 manifold learning (流行学习) 和 spectral clustering (谱聚类)。 neighbors-bas

  • 介绍 KNN算法全名为k-Nearest Neighbor,就是K最近邻的意思。KNN 也是一种分类算法。但是与之前说的决策树分类算法相比,这个算法算是最简单的一个了。算法的主要过程为: 1、给定一个训练集数据,每个训练集数据都是已经分好类的。 2、设定一个初始的测试数据a,计算a到训练集所有数据的欧几里得距离,并排序。                        3、选出训练集中离a距离最近的

  • 我刚开始编程,今天我完成了二维空间中最近对问题的简单解法。(2个用于环路) 然而,我放弃了在O(n log n)中找到任何能解决这一问题的方法。即使在研究了它之后,我仍然不明白这怎么能比琐碎的方法更快。 我理解的是:->首先,我们将数组分成两半,只考虑X坐标对所有内容进行排序。这可以在n log n中完成。 接下来是递归调用,它们在每一半中“找到两个距离最小的点”。但是在O(n^2)下是怎么做到的

  • 介绍 LRU (least recently used)最近最久未使用缓存。根据使用时间来判定对象是否被持续缓存,当对象被访问时放入缓存,当缓存满了,最久未被使用的对象将被移除。此缓存基于LinkedHashMap,因此当被缓存的对象每被访问一次,这个对象的key就到链表头部。这个算法简单并且非常快,他比FIFO有一个显著优势是经常使用的对象不太可能被移除缓存。缺点是当缓存满时,不能被很快的访问。

  • @subpage tutorial_py_knn_understanding_cn 了解kNN的基本知识。 @subpage tutorial_py_knn_opencv_cn 现在让我们在OpenCV中使用kNN进行数字识别(OCR)

  • 我正在学习CLR中的一节,它描述了使用分而治之的方法,使用两点之间的欧几里德距离来找到最近的点对。 有一个问题,要求找到最近的点对之间的manhatten距离,使用类似的方法。但是,我不能把握两者之间的区别。以下是我能想到的: 3)递归到我们的点子集<=3为止(在这种情况下使用蛮力) 4)最小距离可以是从任何一个递归调用返回的距离--称它为D。 5)找到线“L”周围2D宽度内所有点,然后对于每个这