class solution {
record pair(int value, int index) {}
public int[] getfinalstate(int[] nums, int k, int multiplier) {
for (int i = 0; i < k; i++) {
pair minpair = getmin(nums);
nums[minpair.index] = minpair.value * multiplier;
system.out.printf("min %s. nums after replacement: %s %n", minpair, arrays.tostring(nums));
}
return nums;
}
private pair getmin(int[] nums) {
pair minpair = new pair(integer.max_value, -1);
for (int i = 0; i < nums.length; i++) {
if (nums[i] < minpair.value) {
minpair = new pair(nums[i], i);
}
}
return minpair;
}
}
我添加了 print 语句来可视化每次迭代中的 minvalue 和 nums:
Input: nums=[2,1,3,5,6], k=5, multiplier=2 Std out: Min Pair[value=1, index=1]. nums after replacement: [2, 2, 3, 5, 6] MinPair[value=2, index=0]. nums after replacement: [4, 2, 3, 5, 6] Min Pair[value=2, index=1]. nums after replacement: [4, 4, 3, 5, 6] Min Pair[value=3, index=2]. nums after replacement: [4, 4, 6, 5, 6] Min Pair[value=4, index=0]. nums after replacement: [8, 4, 6, 5, 6]