minnera

Cracking the Coding Interview : Array left rotation

Sep 27th, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | None | 0 0
  1. //https://www.hackerrank.com/challenges/ctci-array-left-rotation
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. class Solution {
  8.  
  9.     static void Main(String[] args) {
  10.         string[] tokens_n = Console.ReadLine().Split(' ');
  11.         int meret = Convert.ToInt32(tokens_n[0]);
  12.         int d = Convert.ToInt32(tokens_n[1]);
  13.         string[] a_temp = Console.ReadLine().Split(' ');
  14.         int[] a = Array.ConvertAll(a_temp,Int32.Parse);
  15.         //
  16.         LeftRotation(meret, d, a);        
  17.     }
  18.    
  19.     static void LeftRotation(int meret, int d, int[] a){
  20.         int[] kimenet = new int[meret];
  21.         //először az d-edik elemet vesszük, mert ez lesz az új tömb első eleme, és az eredeti tömb végéig elmegyünk innen.      
  22.         for(int i = d; i < meret; i++){
  23.             kimenet[i-d] = a[i];
  24.         }
  25.         //mikor a tömb végére értünk, azt jelenti hogy az eredeti tömb első elemétől kezdve kell folytatni az új tömb feltöltését
  26.         for(int i = meret-d; i < meret; i++){
  27.             kimenet[i] = a[i-(meret-d)];
  28.         }
  29.         //kiíratás
  30.         for(int i = 0; i < meret-1; i++){
  31.             Console.Write(kimenet[i] + " ");
  32.         }
  33.         //az utolsó elemet külön írjuk ki, hogy ne keletkezzen fölösleges space
  34.         Console.Write(kimenet[meret-1]);        
  35.     }
  36. }
Add Comment
Please, Sign In to add comment