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 than increment count. The final value of count will be the minimum changes required.

## 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>` |

**Output:**

3

**Time Complexity:** O(n) **Auxiliary Space:** O(n)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**