Nasko Apostolov:
私は、各要素が先行する要素と最初と最後の要素を除いて、後続の要素にキーの値であるキーと値のペアに整数配列を変換するために探しています。
私は配列をハッシュマップに変換した後、私は、配列内の整数の間のギャップを計算する必要があります。私は配列を変換することができていますが、よりエレガントな解決策を探していますし、まだギャップを見つける必要があります。
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]);
}
}
}
入力:[3、6、9、1]
ハッシュマップのように入力:{3:6,6:9,9:1}
出力:[3、3、8]
güriösä:
Q:1はすぐに距離を計算することができたとき、私は、ハッシュマップの迂回が何のためにあるのかと思いまして。
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;
}