gpt4 book ai didi

c# - 找到两个成对给定元素之间的最大距离

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:09 25 4
gpt4 key购买 nike

此代码旨在找到两个元素之间的最小距离。如下例所示,3 和 3 之间的最小距离应返回 5,但我需要最远的不是最近的,我应该如何找到 3 号和 3 号之间的最大距离?

   internal class MinimumDistance
{
internal virtual int minDist(int[] arr, int n, int x, int y)
{
int i, j;
int min_dist = int.MaxValue;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if ((x == arr[i] && y == arr[j] || y == arr[i] && x == arr[j]) && min_dist > Math.Abs(i - j))
{
min_dist = Math.Abs(i - j);
}
}
}
return min_dist;
}

public static void Main(string[] args)
{
MinimumDistance min = new MinimumDistance();
int[] arr = new int[] { 3, 2, 4, 2, 6, 5, 3, 6, 5, 4, 8, 3 };
int n = arr.Length;
int x = 3;
int y = 3;

Console.WriteLine("Minimum distance between " + x + " and " + y + " is " + min.minDist(arr, n, x, y)); //return the nearest 3 so it will be 5
}
}

最佳答案

这段代码应该做的:

internal class MaximumDistance
{
internal virtual int maxDist(int[] arr, int n, int x, int y)
{
var max_dist = int.MinValue;
for (var i = 0; i < n; i++)
for (var j = i + 1; j < n; j++)
if ((x == arr[i] && y == arr[j] || y == arr[i] && x == arr[j]) && max_dist < Math.Abs(i - j))
max_dist = Math.Abs(i - j);
return max_dist;
}

public static void Main(string[] args)
{
var max = new MaximumDistance();
var arr = new int[] { 3, 2, 4, 2, 6, 5, 3, 6, 5, 4, 8, 3 };
var n = arr.Length;
var x = 3;
var y = 3;

Console.WriteLine("Maximum distance between " + x + " and " + y + " is " + max.maxDist(arr, n, x, y));
}
}

关于c# - 找到两个成对给定元素之间的最大距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com