Given two integers N and K, the task is to find a permutation of first 2*N natural numbers such that the following equation is satisfied.
Note: The value of K will always be less than or equal to N.
Input : N = 1, K = 0 Output : 1 2 The result of the above expression will be: |1-2|-|1-2| =0 Input : N = 2, K = 1 Output : 2 1 3 4 The result of the above expression will be: (|2-1|+|3-4|)-(|2-1+3-4|) = 2
Consider the sorted permutation:
1, 2, 3, 4, 5, 6....
The result of the expression will come out to be exactly 0. If we swap any 2 indices 2i-1 and 2i, the result will increase by exactly 2. So we need to make K such swaps.
Below is the implementation of the above approach:
2 1 3 4
Time Complexity: O(N)
Auxiliary Space: O(1)
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- Find the K-th Permutation Sequence of first N natural numbers
- Find the permutation of first N natural numbers such that sum of i % Pi is maximum possible
- Find the good permutation of first N natural numbers
- Find permutation of first N natural numbers that satisfies the given condition
- Find the number of sub arrays in the permutation of first N natural numbers such that their median is M
- Permutation of numbers such that sum of two consecutive numbers is a perfect square
- Check if an Array is a permutation of numbers from 1 to N : Set 2
- Increasing permutation of first N natural numbers
- Check if an Array is a permutation of numbers from 1 to N
- Deriving the expression of Fibonacci Numbers in terms of golden ratio
- Euler zigzag numbers ( Alternating Permutation )
- Minimum steps to convert an Array into permutation of numbers from 1 to N
- Number of valid indices in the permutation of first N natural numbers
- Minimum cost to make an Array a permutation of first N natural numbers
- Minimum number of prefix reversals to sort permutation of first N numbers
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.