Minimum array element changes to make its elements 1 to N Last Updated : 08 Sep, 2022 Comments Improve Suggest changes Like Article Like Report Suppose you are given an array with N elements with any integer values. You need to find the minimum number of elements of the array which must be changed so that array has all integer values between 1 and N(including 1, N). Examples: Input : arr[] = {1 4 5 3 7} Output : 1 We need to replace 7 with 2 to satisfy condition hence minimum changes is 1. Input : arr[] = {8 55 22 1 3 22 4 5} Output :3 We insert all elements in a hash table. We then iterate from 1 to N and check whether the element is present in the hash table. If it is not present then increment count. The final value of count will be the minimum changes required. Implementation: C++ // Count minimum changes to make array // from 1 to n #include <bits/stdc++.h> using namespace std; int countChanges(int arr[], int n) { // it will contain all initial elements // of array for log(n) complexity searching unordered_set<int> s; // Inserting all elements in a hash table for (int i = 0; i < n; i++) s.insert(arr[i]); // Finding elements to be changed int count = 0; for (int i = 1; i <= n; i++) if (s.find(i) == s.end()) count++; return count; } int main() { int arr[] = {8, 55, 22, 1, 3, 22, 4, 5}; int n = sizeof(arr)/sizeof(arr[0]); cout << countChanges(arr, n); return 0; } Java // Count minimum changes to // make array from 1 to n import java.util.Set; import java.util.HashSet; class GfG { static int countChanges(int arr[], int n) { // It will contain all initial elements // of array for log(n) complexity searching Set<Integer> s = new HashSet<>(); // Inserting all elements in a hash table for (int i = 0; i < n; i++) s.add(arr[i]); // Finding elements to be changed int count = 0; for (int i = 1; i <= n; i++) if (!s.contains(i)) count++; return count; } // Driver code public static void main(String []args) { int arr[] = {8, 55, 22, 1, 3, 22, 4, 5}; int n = arr.length; System.out.println(countChanges(arr, n)); } } // This code is contributed by Rituraj Jain Python 3 # Count minimum changes to # make array from 1 to n def countChanges(arr, n): # it will contain all initial # elements of array for log(n) # complexity searching s = [] # Inserting all elements in a list for i in range(n): s.append(arr[i]) # Finding elements to be changed count = 0 for i in range(1, n + 1) : if i not in s: count += 1 return count # Driver Code if __name__ == "__main__": arr = [8, 55, 22, 1, 3, 22, 4, 5] n = len(arr) print(countChanges(arr, n)) # This code is contributed # by ChitraNayal C# // C# program to Count minimum changes to // make array from 1 to n using System; using System.Collections.Generic; class GfG { static int countChanges(int []arr, int n) { // It will contain all initial elements // of array for log(n) complexity searching HashSet<int> s = new HashSet<int>(); // Inserting all elements in a hash table for (int i = 0; i < n; i++) s.Add(arr[i]); // Finding elements to be changed int count = 0; for (int i = 1; i <= n; i++) if (!s.Contains(i)) count++; return count; } // Driver code public static void Main(String []args) { int []arr = {8, 55, 22, 1, 3, 22, 4, 5}; int n = arr.Length; Console.WriteLine(countChanges(arr, n)); } } // This code is contributed by 29AjayKumar PHP <?php // Count minimum changes to // make array from 1 to n function countChanges(&$arr, $n) { // it will contain all initial // elements of array for log(n) // complexity searching $s = array(); // Inserting all elements // in an array for ($i = 0; $i < $n; $i++) array_push($s, $arr[$i]); // Finding elements to be changed $count = 0; for ($i = 1; $i <= $n; $i++) if (!in_array($i, $s)) $count++; return $count; } // Driver Code $arr = array(8, 55, 22, 1, 3, 22, 4, 5); $n = sizeof($arr); echo countChanges($arr, $n); // This code is contributed // by ChitraNayal ?> JavaScript <script> // Count minimum changes to // make array from 1 to n function countChanges(arr,n) { // It will contain all initial elements // of array for log(n) complexity searching let s = new Set(); // Inserting all elements in a hash table for (let i = 0; i < n; i++) s.add(arr[i]); // Finding elements to be changed let count = 0; for (let i = 1; i <= n; i++) if (!s.has(i)) count++; return count; } // Driver code let arr=[8, 55, 22, 1, 3, 22, 4, 5]; let n = arr.length; document.write(countChanges(arr, n)); // This code is contributed by rag2127 </script> Output3 Complexities Analysis: Time Complexity: O(n) Auxiliary Space: O(n) Comment More infoAdvertise with us Next Article Minimum array element changes to make its elements 1 to N S Shashank_Sharma Follow Improve Article Tags : Misc Hash DSA Arrays limited-range-elements cpp-unordered_map +2 More Practice Tags : ArraysHashMisc Similar Reads Minimum Increment / decrement to make array elements equal Given an array of integers where 1 \leq A[i] \leq 10^{18} . In one operation you can either Increment/Decrement any element by 1. The task is to find the minimum operations needed to be performed on the array elements to make all array elements equal. Examples: Input : A[] = { 1, 5, 7, 10 } Output : 7 min read Minimum increments to make the array non-decreasing Given an array A[] of size N along with an integer M such that 0 <= A[i] < M, the task is to output minimum number of operations required to sort A[] to non-decreasing order using following operation, choose an element let say A[i] and update it as (A[i] + 1) mod M. Examples: Input: N = 4, M = 7 min read Minimum array elements to be changed to make Recaman's sequence Given an array arr[] of N elements. The task is to find the minimum number of elements to be changed in the array such that the array contains first N Recaman's Sequence terms. Note that Recaman terms may be present in any order in the array. First few terms of Recaman's Sequence are: 0, 1, 3, 6, 2, 7 min read Minimum operation to make all elements equal in array Given an array consisting of n positive integers, the task is to find the minimum number of operations to make all elements equal. In each operation, we can perform addition, multiplication, subtraction, or division with any number and an array element. Examples: Input : arr[] = [1, 2, 3, 4]Output : 11 min read Minimum increments or decrements by 1 required to make all array elements in AP Given an array arr[] consisting of N integers, the task is to find the minimum number of increment/decrement by 1 required to be performed on array elements to make all the elements of the given array arr[] in AP. If it is not possible to make the array in AP, then print "-1". Examples: Input: arr[] 11 min read Like