- 重要链接
- 直觉
- 解决方案
- 可视化
- 问题:3264。k 乘法运算后的最终数组状态 i
- 链接到父页面:模拟
- java 备忘单:链接
- 这是一个简单的模拟问题。
- 编写一个方法 getmin() 来查找数组中的最小值及其索引(创建一个记录 pair 以返回 2 个值)。
- 这个想法是迭代数组 k 次。
- 在每次迭代中,使用 getmin() 查找数组中的最小值及其索引。
- 通过设置 nums[i] = minvalue * multiplier 使用索引更新数组中的该值
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] Min Pair[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]
以上就是K 乘法运算后的最终数组状态 I的详细内容,更多请关注图灵教育其它相关文章!