624. Maximum Distance in Arrays
题目文本会按所选界面语言从俄语翻译;代码保持不变。
Вам given m 数组ов, где каждый 数组 отсортирован по возрастанию. Вы можете взять два целых числа из двух разных 数组ов (каждый 数组 выбирает одно) и вычислить расстояние. Мы определяем расстояние между двумя целыми числами a и b как их абсолютную разность |a - b|. return максимальное расстояние.
示例:
Input: arrays = [[1,2,3],[4,5],[1,2,3]]
Output: 4
C# 解法
匹配/原始public class Solution {
public int MaxDistance(IList<IList<int>> arrays) {
int minVal = arrays[0][0];
int maxVal = arrays[0][arrays[0].Count - 1];
int maxDistance = 0;
for (int i = 1; i < arrays.Count; i++) {
maxDistance = Math.Max(maxDistance, Math.Abs(arrays[i][arrays[i].Count - 1] - minVal), Math.Abs(arrays[i][0] - maxVal));
minVal = Math.Min(minVal, arrays[i][0]);
maxVal = Math.Max(maxVal, arrays[i][arrays[i].Count - 1]);
}
return maxDistance;
}
}
C++ 解法
自动草稿,提交前请检查#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int MaxDistance(IList<vector<int>> arrays) {
int minVal = arrays[0][0];
int maxVal = arrays[0][arrays[0].size() - 1];
int maxDistance = 0;
for (int i = 1; i < arrays.size(); i++) {
maxDistance = max(maxDistance, abs(arrays[i][arrays[i].size() - 1] - minVal), abs(arrays[i][0] - maxVal));
minVal = min(minVal, arrays[i][0]);
maxVal = max(maxVal, arrays[i][arrays[i].size() - 1]);
}
return maxDistance;
}
}
Java 解法
匹配/原始import java.util.List;
public class Solution {
public int maxDistance(List<List<Integer>> arrays) {
int minVal = arrays.get(0).get(0);
int maxVal = arrays.get(0).get(arrays.get(0).size() - 1);
int maxDistance = 0;
for (int i = 1; i < arrays.size(); i++) {
maxDistance = Math.max(maxDistance, Math.abs(arrays.get(i).get(arrays.get(i).size() - 1) - minVal), Math.abs(arrays.get(i).get(0) - maxVal));
minVal = Math.min(minVal, arrays.get(i).get(0));
maxVal = Math.max(maxVal, arrays.get(i).get(arrays.get(i).size() - 1));
}
return maxDistance;
}
}
JavaScript 解法
匹配/原始function maxDistance(arrays) {
let minVal = arrays[0][0];
let maxVal = arrays[0][arrays[0].length - 1];
let maxDistance = 0;
for (let i = 1; i < arrays.length; i++) {
const currentMin = arrays[i][0];
const currentMax = arrays[i][arrays[i].length - 1];
maxDistance = Math.max(
maxDistance,
Math.abs(currentMax - minVal),
Math.abs(currentMin - maxVal)
);
minVal = Math.min(minVal, currentMin);
maxVal = Math.max(maxVal, currentMax);
}
return maxDistance;
}
Python 解法
匹配/原始def maxDistance(arrays):
min_val = arrays[0][0]
max_val = arrays[0][-1]
max_distance = 0
for i in range(1, len(arrays)):
max_distance = max(max_distance, abs(arrays[i][-1] - min_val), abs(arrays[i][0] - max_val))
min_val = min(min_val, arrays[i][0])
max_val = max(max_val, arrays[i][-1])
return max_distance
Go 解法
匹配/原始package main
import (
"math"
)
func maxDistance(arrays [][]int) int {
minVal := arrays[0][0]
maxVal := arrays[0][len(arrays[0])-1]
maxDistance := 0
for i := 1; i < len(arrays); i++ {
maxDistance = int(math.Max(float64(maxDistance), math.Max(float64(abs(arrays[i][len(arrays[i])-1]-minVal)), float64(abs(arrays[i][0]-maxVal)))))
minVal = int(math.Min(float64(minVal), float64(arrays[i][0])))
maxVal = int(math.Max(float64(maxVal), float64(arrays[i][len(arrays[i])-1])))
}
return maxDistance
}
func abs(a int) int {
if a < 0 {
return -a
}
return a
}
Algorithm
find minimum element из всех первых elementов 数组ов и maximum element из всех последних elementов 数组ов.
Рассчитайте максимальное расстояние между минимальным и максимальным elementами.
return это максимальное расстояние.
😎
Vacancies for this task
活跃职位 with overlapping task tags are 已显示.
目前还没有活跃职位。