将前 N 个自然数放在数组中与其值不相等的索引处
原文:https://www . geesforgeks . org/place-first-n-natural-numbers-at-index-不等于数组中的值/
给定一个整数 N ( N > 1 ,任务是将范围【1,N】中的所有整数排列在一个数组中,使得没有一个元素与它们在数组中出现的索引(基于 1 的索引)相同。
示例:
输入: N = 2 输出: 2 1 解释:大小为 2 的数组唯一可能的排列方式是 2 1。
输入: N=5 输出: 2 1 5 3 4 解释:大小为 5 的数组的一种可能排列是 2 1 5 3 4l。
方法:最简单的想法是将 N 放在第一个索引处,将其余元素【1,N–1】放在其余索引处。
下面是上述方法的实现:
C++
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to place first N natural
// numbers in an array such that none
// of the values are equal to its indices
void generatepermutation(int N)
{
// Stores the required array
vector<int> answer;
// Place N at the first position
answer.push_back(N);
// Iterate the range [1, N)
for (int i = 1; i < N; i++)
{
// Append elements to the sequence
answer.push_back(i);
}
// Print the sequence
for(int i:answer) cout << i << " ";
}
// Driver Code
int main()
{
int N = 4;
generatepermutation(N);
return 0;
}
// This code is contributed by mohit kumar 29.
Java 语言(一种计算机语言,尤用于创建网站)
// Java program for the above approach
import java.util.*;
class GFG
{
// Function to place first N natural
// numbers in an array such that none
// of the values are equal to its indices
static void generatepermutation(int N)
{
// Stores the required array
Vector<Integer> answer = new Vector<Integer>();
// Place N at the first position
answer.add(N);
// Iterate the range [1, N)
for (int i = 1; i < N; i++)
{
// Append elements to the sequence
answer.add(i);
}
// Print the sequence
for(int i:answer) System.out.print(i+ " ");
}
// Driver Code
public static void main(String[] args)
{
int N = 4;
generatepermutation(N);
}
}
// This code is contributed by 29AjayKumar
Python 3
# Python program for the above approach
# Function to place first N natural
# numbers in an array such that none
# of the values are equal to its indices
def generatepermutation(N):
# Stores the required array
answer = []
# Place N at the first position
answer.append(N)
# Iterate the range [1, N)
for i in range(1, N):
# Append elements to the sequence
answer.append(i)
# Print the sequence
print(*answer)
# Driver Code
N = 4
generatepermutation(N)
C
// C# program for the above approach
using System;
class GFG
{
// Function to place first N natural
// numbers in an array such that none
// of the values are equal to its indices
static void generatepermutation(int N)
{
// Stores the required array
int[] answer = new int[N];
// Place N at the first position
answer[0] = N;
// Iterate the range [1, N)
for (int i = 1; i < N; i++)
{
// Append elements to the sequence
answer[i] = i;
}
// Print the sequence
foreach(int i in answer) Console.Write(i+ " ");
}
// Driver Code
static public void Main ()
{
int N = 4;
generatepermutation(N);
}
}
// This code is contributed by Dharanendra L V
java 描述语言
<script>
// JavaScript program for the above approach
// Function to place first N natural
// numbers in an array such that none
// of the values are equal to its indices
function generatepermutation(N)
{
// Stores the required array
var answer = [];
// Place N at the first position
answer.push(N);
console.log(answer);
// Iterate the range [1, N)
for (var i = 1; i < N; i++) {
console.log(answer);
// Append elements to the sequence
answer.push(i);
}
// Print the sequence
for (var i in answer)
document.write(answer[i] + " ");
}
// Driver Code
var N = 4;
generatepermutation(N);
</script>
Output
4 1 2 3
时间复杂度:O(N) T5辅助空间:** O(1)
版权属于:月萌API www.moonapi.com,转载请注明出处