【力扣题解】6092. 替换数组中的元素
😊博主目前也在学习,有错误欢迎指正😊
🌈保持热爱 奔赴星海🌈
文章目录
-
- 一、题目
-
- 1、题目描述
- 2、基础框架
- 3、原题链接
- 二、解题报告
-
- 1、思路分析
- 2、代码详解
- 三、本题知识
一、题目
1、题目描述
给你一个下标从 0 开始的数组 nums ,它包含 n 个 互不相同 的正整数。请你对这个数组执行 m 个操作,在第 i 个操作中,你需要将数字 operations[i][0] 替换成 operations[i][1] 。
题目保证在第 i 个操作中:
- operations[i][0] 在 nums 中存在。
- operations[i][1] 在 nums 中不存在。
请你返回执行完所有操作后的数组。
2、基础框架
- Java版本框架代码如下:
class Solution { public int[] arrayChange(int[] nums, int[][] operations) { }}
3、原题链接
6092. 替换数组中的元素
二、解题报告
1、思路分析
(1)用哈希表记录nums数组中的每个元素的位置,然后遍历operations数组替换nums中的值即可。
2、代码详解
class Solution { public int[] arrayChange(int[] nums, int[][] operations) { HashMap<Integer,Integer> map = new HashMap(); int n = nums.length; int m = operations.length; for(int i = 0;i < n;i++) { map.put(nums[i],i); } for(int i = 0;i < m;i++) { nums[map.get(operations[i][0])] = operations[i][1]; map.put(operations[i][1],map.get(operations[i][0])); } return nums; }}
三、本题知识
哈希表+遍历