给定N个元素的数组arr [] ,其中N≥2 ,任务是检查数组的类型是否为:
- 越来越多。
- 减少。
- 先升后降。
- 先降后升。
注意,给定的数组肯定是给定类型之一。
例子:
Input: arr[] = {1, 2, 3, 4, 5}
Output: Increasing
Input: arr[] = {1, 2, 4, 3}
Output: Increasing then decreasing
方法:必须满足以下条件:
- 递增数组:前两个元素和后两个元素必须按递增顺序排列。
- 递减数组:前两个元素和后两个元素必须按递减顺序排列。
- 先增后减数组:前两个元素必须按升序排列,后两个元素必须按降序排列。
- 先降后升数组:前两个元素必须按降序排列,后两个元素必须按升序排列。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to check the type of the array
void checkType(int arr[], int n)
{
// If the first two and the last two elements
// of the array are in increasing order
if (arr[0] <= arr[1] && arr[n - 2] <= arr[n - 1])
cout << "Increasing";
// If the first two and the last two elements
// of the array are in decreasing order
else if (arr[0] >= arr[1] && arr[n - 2] >= arr[n - 1])
cout << "Decreasing";
// If the first two elements of the array are in
// increasing order and the last two elements
// of the array are in decreasing order
else if (arr[0] <= arr[1] && arr[n - 2] >= arr[n - 1])
cout << "Increasing then decreasing";
// If the first two elements of the array are in
// decreasing order and the last two elements
// of the array are in increasing order
else
cout << "Decreasing then increasing";
}
// Driver code
int main()
{
int arr[] = { 1, 2, 3, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
checkType(arr, n);
return 0;
}
Java
// Java implementation of the approach
import java.math.*;
class GFG
{
// Function to check the type of the array
public static void checkType(int arr[], int n)
{
// If the first two and the last two elements
// of the array are in increasing order
if (arr[0] <= arr[1] &&
arr[n - 2] <= arr[n - 1])
System.out.println("Increasing");
// If the first two and the last two elements
// of the array are in decreasing order
else if (arr[0] >= arr[1] &&
arr[n - 2] >= arr[n - 1])
System.out.println("Decreasing");
// If the first two elements of the array are in
// increasing order and the last two elements
// of the array are in decreasing order
else if (arr[0] <= arr[1] &&
arr[n - 2] >= arr[n - 1])
System.out.println("Increasing then decreasing");
// If the first two elements of the array are in
// decreasing order and the last two elements
// of the array are in increasing order
else
System.out.println("Decreasing then increasing");
}
// Driver code
public static void main(String[] args)
{
int[] arr = new int[]{ 1, 2, 3, 4 };
int n = arr.length;
checkType(arr, n);
}
}
// This code is contributed by Naman_Garg
Python3
# Python3 implementation of the approach
# Function to check the type of the array
def checkType(arr, n):
# If the first two and the last two elements
# of the array are in increasing order
if (arr[0] <= arr[1] and
arr[n - 2] <= arr[n - 1]) :
print("Increasing");
# If the first two and the last two elements
# of the array are in decreasing order
elif (arr[0] >= arr[1] and
arr[n - 2] >= arr[n - 1]) :
print("Decreasing");
# If the first two elements of the array are in
# increasing order and the last two elements
# of the array are in decreasing order
elif (arr[0] <= arr[1] and
arr[n - 2] >= arr[n - 1]) :
print("Increasing then decreasing");
# If the first two elements of the array are in
# decreasing order and the last two elements
# of the array are in increasing order
else :
print("Decreasing then increasing");
# Driver code
if __name__ == "__main__" :
arr = [ 1, 2, 3, 4 ];
n = len(arr);
checkType(arr, n);
# This code is contributed by AnkitRai01
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to check the type of the array
public static void checkType(int []arr, int n)
{
// If the first two and the last two elements
// of the array are in increasing order
if (arr[0] <= arr[1] &&
arr[n - 2] <= arr[n - 1])
Console.Write("Increasing");
// If the first two and the last two elements
// of the array are in decreasing order
else if (arr[0] >= arr[1] &&
arr[n - 2] >= arr[n - 1])
Console.Write("Decreasing");
// If the first two elements of the array are in
// increasing order and the last two elements
// of the array are in decreasing order
else if (arr[0] <= arr[1] &&
arr[n - 2] >= arr[n - 1])
Console.Write("Increasing then decreasing");
// If the first two elements of the array are in
// decreasing order and the last two elements
// of the array are in increasing order
else
Console.Write("Decreasing then increasing");
}
// Driver code
static public void Main ()
{
int[] arr = new int[]{ 1, 2, 3, 4 };
int n = arr.Length;
checkType(arr, n);
}
}
// This code is contributed by ajit
输出:
Increasing