All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g2201_2300.s2295_replace_elements_in_an_array.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g2201_2300.s2295_replace_elements_in_an_array;

// #Medium #Array #Hash_Table #Simulation #2022_06_16_Time_89_ms_(65.26%)_Space_170.7_MB_(17.18%)

import java.util.HashMap;

/**
 * 2295 - Replace Elements in an Array\.
 *
 * Medium
 *
 * You are given a **0-indexed** array `nums` that consists of `n` **distinct** positive integers. Apply `m` operations to this array, where in the ith operation you replace the number `operations[i][0]` with `operations[i][1]`.
 *
 * It is guaranteed that in the ith operation:
 *
 * *   `operations[i][0]` **exists** in `nums`.
 * *   `operations[i][1]` does **not** exist in `nums`.
 *
 * Return _the array obtained after applying all the operations_.
 *
 * **Example 1:**
 *
 * **Input:** nums = [1,2,4,6], operations = \[\[1,3],[4,7],[6,1]]
 *
 * **Output:** [3,2,7,1]
 *
 * **Explanation:**
 *
 * We perform the following operations on nums: 
 *
 * - Replace the number 1 with 3. nums becomes [**3** ,2,4,6]. 
 *
 * - Replace the number 4 with 7. nums becomes [3,2, **7** ,6]. 
 *
 * - Replace the number 6 with 1. nums becomes [3,2,7, **1** ]. 
 *
 * We return the final array [3,2,7,1]. 
 *
 * **Example 2:**
 *
 * **Input:** nums = [1,2], operations = \[\[1,3],[2,1],[3,2]]
 *
 * **Output:** [2,1]
 *
 * **Explanation:**
 *
 * We perform the following operations to nums: 
 *
 * - Replace the number 1 with 3. nums becomes [**3** ,2]. 
 *  
 * - Replace the number 2 with 1. nums becomes [3, **1** ]. 
 *
 * - Replace the number 3 with 2. nums becomes [**2** ,1]. 
 *
 * We return the array [2,1]. 
 *
 * **Constraints:**
 *
 * *   `n == nums.length`
 * *   `m == operations.length`
 * *   1 <= n, m <= 105
 * *   All the values of `nums` are **distinct**.
 * *   `operations[i].length == 2`
 * *   1 <= nums[i], operations[i][0], operations[i][1] <= 106
 * *   `operations[i][0]` will exist in `nums` when applying the ith operation.
 * *   `operations[i][1]` will not exist in `nums` when applying the ith operation.
**/
public class Solution {
    public int[] arrayChange(int[] nums, int[][] operations) {
        HashMap map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            map.put(nums[i], i);
        }
        for (int[] operation : operations) {
            int index = map.get(operation[0]);
            nums[index] = operation[1];
            map.put(operation[1], index);
        }
        return nums;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy