Skip to main content

Left Rotation in an Array using Java

Left Rotation in an Array using Java

There are two methods implemented by me here :-

1) Using extra Array 
  1.  Get new position of  a current element using formula.
  2.  Add the element in the new position in a new array.


2) Using same Array:- This is little bit complex

  1. hold variable at index i.
  2. find new index for variable.
  3. hold variable present at new index.
  4. place variable at index i to this new index.
  5. assign i to new index variable.
  6. repeat steps until count is not equal to lenght of an array which simply means all variable got covered.



package Arrays;

/*
 * 12345 to 34512
 */

/*
 * sample input
 * 5 4(d=4 that is 4 rotations)
 1 2 3 4 5
 sample output
 51234
 */
public class LeftRotation {
 
 public static void printArray(int[] arr)
 {
  
  for(int i=0;i<arr.length;i++)
  {
  System.out.print(" "+arr[i]);
  }
  System.out.println(" ");
 }
 
 //method which returns rotated array using extra array
 public static int[] leftRotate(int[] arr, int rotation)
 {
  int temparr[]=new int[arr.length];
  int pos;
  for(int i=0;i<arr.length;i++)
  {
   pos=(arr.length+(i-rotation))%arr.length;
   temparr[pos]=arr[i];
  }
  printArray(temparr);
  
  return temparr;
 }

 //method which returns rotated array using same array
 public static int[] leftRotate2(int[] arr, int rotation)
 {
  
  int pos,tempinit,temppos=arr[0],i=0,c=0;
  
  while(c!=arr.length){
   tempinit=temppos;
   pos=(arr.length+(i-rotation))%arr.length;
   temppos=arr[pos];
   arr[pos]=tempinit; 
   i=pos;
   c++;
  }
  
  printArray(arr);
  
  return arr;
 }

 
 
 public static void main(String[] args)
 {
  int[] arr={1,2,3,4,5};
  leftRotate(arr, 3);
  leftRotate2(arr, 3);
 }
}

Comments

.

Popular posts from this blog

TWO SUM -LEET CODE PROBLEM 1

   https://leetcode.com/problems/two-sum/ Given an array of integers  nums  and an integer  target , return  indices of the two numbers such that they add up to  target . You may assume that each input would have  exactly  one solution , and you may not use the  same  element twice. You can return the answer in any order.   Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] class Solution {     public int[] twoSum(int[] nums, int target) {              HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();                  for(int i=0;i<nums.length;i++){                      ...

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews Must do Top interview questions Top 100 liked Must do 75  Must do 60  Must do medium Data structures Tree Graph  Dynamic Programming Company Interviews FaceBook interviews Amazon Interviews Google Interviews Github master List