gpt4 book ai didi

java - 如何使用 HashMap 计算数字对的绝对差?

转载 作者:行者123 更新时间:2023-12-02 01:35:25 25 4
gpt4 key购买 nike

我希望将整数数组转换为键值对,其中每个元素都是前一个元素的值和后一个元素的键(第一个和最后一个元素除外)。

将数组转换为 HashMap 后,我需要计算数组中整数之间的差距。我能够转换数组,但正在寻找更优雅的解决方案,并且仍然需要找到差距。

public void calculateGap(int[] nums) {
int l = nums.length;
Map<Integer, Integer> dist = new HashMap<>();

for(int i=0; i<l; i++) {
if(i != l-1) {
int val = nums[i+1];
dist.put(nums[i], val);
}
if(i != 0) {
int key = nums[i-1];
dist.put(key, nums[i]);
}
}
}

Input: [3, 6, 9, 1]

Input as a hashmap: {3:6, 6:9, 9:1}

Output: [3, 3, 8]

最佳答案

问:我想知道 hashmap 绕行的目的是什么,当人们可以直接计算距离时。

public int[] calculateGap(int[] nums) {
if (nums.length < 2) {
throw new IllegalArgumentException();
}

int[] dist = new int[nums.length - 1];
for (int i = 1; i < nums.length; i++) {
dist[i - 1] = Math.abs(nums[i] - nums[i - 1]);
}
return dist;
}

关于java - 如何使用 HashMap 计算数字对的绝对差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58634637/

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