# 从字法上最小长度N的排列，使得对于正好为K个索引，a[i] a[i]+1

2021年5月16日17:11:48 发表评论 1,582 次浏览

## 本文概述

``````Input: N = 5, K = 3
Output: 5 4 3 1 2
Starting 3 indices satisfying the condition
a[i]> a[i]+1

Input: N = 7, k = 4
Output: 7 6 5 4 1 2 3``````

## C ++

``````//C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;

void printPermutation( int n, int k)
{
int i, mx = n;
for (i = 1; i <= k; i++) //Decreasing part
{
cout <<mx <<" " ;
mx--;
}
for (i = 1; i <= mx; i++) //Increasing part
cout <<i <<" " ;
}

//Driver Code
int main()
{
int N = 5, K = 3;

if (K>= N - 1)
cout <<"Not Possible" ;

else
printPermutation(N, K);

return 0;
}``````

## Java

``````//Java implementation of the above approach

import java.io.*;

class GFG {

static void printPermutation( int n, int k)
{
int i, mx = n;
for (i = 1 ; i <= k; i++) //Decreasing part
{
System.out.print( mx + " " );
mx--;
}
for (i = 1 ; i <= mx; i++) //Increasing part
System.out.print( i + " " );
}

//Driver Code

public static void main (String[] args) {
int N = 5 , K = 3 ;

if (K>= N - 1 )
System.out.print( "Not Possible" );

else
printPermutation(N, K);
}
}

//This code is contributed by inder_verma..``````

## Python3

``````# Python3 implementation of the
# above approach
def printPermutation(n, k):

mx = n
for i in range ( 1 , k + 1 ): # Decreasing part
print (mx, end = " " )
mx - = 1

for i in range ( 1 , mx + 1 ): # Increasing part
print (i, end = " " )

# Driver Code
if __name__ = = "__main__" :

N, K = 5 , 3

if K> = N - 1 :
print ( "Not Possible" )

else :
printPermutation(N, K)

# This code is contributed
# by Rituraj Jain``````

## C#

``````//C# implementation of the above approach
using System;
class GFG {

static void printPermutation( int n, int k)
{
int i, mx = n;
for (i = 1; i <= k; i++) //Decreasing part
{
Console.Write( mx + " " );
mx--;
}
for (i = 1; i <= mx; i++) //Increasing part
Console.Write( i + " " );
}

//Driver Code

public static void Main () {
int N = 5, K = 3;

if (K>= N - 1)
Console.WriteLine( "Not Possible" );

else
printPermutation(N, K);
}
}

//This code is contributed by inder_verma..``````

## 的PHP

``````<?php
//PHP  implementation of the above approach

function printPermutation( \$n , \$k )
{
\$i ; \$mx = \$n ;
for ( \$i = 1; \$i <= \$k ; \$i ++) //Decreasing part
{
echo  \$mx , " " ;
\$mx --;
}
for ( \$i = 1; \$i <= \$mx ; \$i ++) //Increasing part
echo \$i , " " ;
}

//Driver Code

\$N = 5; \$K = 3;

if ( \$K>= \$N - 1)
echo "Not Possible" ;

else
printPermutation( \$N , \$K );

//This code is contributed by inder_verma..
?>``````

``5 4 3 1 2``