Java Program to Modify given array to a non-decreasing array by rotation Last Updated : 27 Jan, 2022 Comments Improve Suggest changes Like Article Like Report Given an array arr[] of size N (consisting of duplicates), the task is to check if the given array can be converted to a non-decreasing array by rotating it. If it's not possible to do so, then print "No". Otherwise, print "Yes". Examples: Input: arr[] = {3, 4, 5, 1, 2}Output: YesExplanation: After 2 right rotations, the array arr[] modifies to {1, 2, 3, 4, 5} Input: arr[] = {1, 2, 4, 3}Output: No Approach: The idea is based on the fact that a maximum of N distinct arrays can be obtained by rotating the given array and check for each individual rotated array, whether it is non-decreasing or not. Follow the steps below to solve the problem: Initialize a vector, say v, and copy all the elements of the original array into it.Sort the vector v.Traverse the original array and perform the following steps:Rotate by 1 in each iteration.If the array becomes equal to vector v, print "Yes". Otherwise, print "No". Below is the implementation of the above approach: Java // Java program for the above approach import java.util.*; class GFG{ // Function to check if a // non-decreasing array can be obtained // by rotating the original array static void rotateArray(int[] arr, int N) { // Stores copy of original array int[] v = arr; // Sort the given vector Arrays.sort(v); // Traverse the array for (int i = 1; i <= N; ++i) { // Rotate the array by 1 int x = arr[N - 1]; i = N - 1; while(i > 0){ arr[i] = arr[i - 1]; arr[0] = x; i -= 1; } // If array is sorted if (arr == v) { System.out.print("YES"); return; } } // If it is not possible to // sort the array System.out.print("NO"); } // Driver Code public static void main(String[] args) { // Given array int[] arr = { 3, 4, 5, 1, 2 }; // Size of the array int N = arr.length; // Function call to check if it is possible // to make array non-decreasing by rotating rotateArray(arr, N); } } // This code is contributed by splevel62. OutputYES Time Complexity: O(N2)Auxiliary Space: O(N) Please refer complete article on Modify given array to a non-decreasing array by rotation for more details! Comment More infoAdvertise with us Next Article Java Program to Modify given array to a non-decreasing array by rotation K kartik Follow Improve Article Tags : Java Sorting Mathematical Java Programs DSA Arrays rotation array-rearrange +4 More Practice Tags : ArraysJavaMathematicalSorting Similar Reads Java Program for Check if it is possible to make array increasing or decreasing by rotating the array Given an array arr[] of N distinct elements, the task is to check if it is possible to make the array increasing or decreasing by rotating the array in any direction.Examples: Input: arr[] = {4, 5, 6, 2, 3} Output: Yes Array can be rotated as {2, 3, 4, 5, 6}Input: arr[] = {1, 2, 4, 3, 5} Output: No 4 min read Java Program to Print all possible rotations of a given Array Given an integer array arr[] of size N, the task is to print all possible rotations of the array.Examples: Input: arr[] = {1, 2, 3, 4} Output: {1, 2, 3, 4}, {4, 1, 2, 3}, {3, 4, 1, 2}, {2, 3, 4, 1} Explanation: Initial arr[] = {1, 2, 3, 4} After first rotation arr[] = {4, 1, 2, 3} After second rotat 3 min read Java Program to Find maximum value of Sum( i*arr[i]) with only rotations on given array allowed Given an array, only rotation operation is allowed on array. We can rotate the array as many times as we want. Return the maximum possible summation of i*arr[i]. Examples :  Input: arr[] = {1, 20, 2, 10} Output: 72 We can get 72 by rotating array twice. {2, 10, 1, 20} 20*3 + 1*2 + 10*1 + 2*0 = 72 I 4 min read Java Program to Maximize count of corresponding same elements in given Arrays by Rotation Given two arrays arr1[] and arr2[] of N integers and array arr1[] has distinct elements. The task is to find the maximum count of corresponding same elements in the given arrays by performing cyclic left or right shift on array arr1[]. Examples:  Input: arr1[] = { 6, 7, 3, 9, 5 }, arr2[] = { 7, 3, 3 min read Java Program to Left Rotate the Elements of an Array In Java, left rotation of an array involves shifting its elements to the left by a given number of positions, with the first elements moving around to the end. There are different ways to left rotate the elements of an array in Java.Example: We can use a temporary array to rotate the array left by " 5 min read Like