public static void Main()
Console.WriteLine("Hello World");
int[] arr = new int[5]{1, 2, 3, 4, 5};
Console.WriteLine("Shift array by " + k);
PlayWithResizableArray();
private static void LeftShiftArray(int[] arr, int k)
for(int i = 0; i < arr.Length; i++){
ListNode node = new ListNode(arr[i]);
for(int i = 0; i < k; i++){
StringBuilder sb = new StringBuilder();
for(int i = 0; i < arr.Length; i ++){
sb.Append(String.Format("{0} ",start.i));
Console.WriteLine(sb.ToString());
public static void PlayWithResizableArray(){
ResizableArray arr = new ResizableArray();
string formatted = "Capacity {0} CapacityInUse {1}";
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
arr.Set(arr.Capacity() + 1, 8);
Console.WriteLine(String.Format(formatted, arr.Capacity(), arr.CapacityInUse()));
public class ResizableArray{
public int CapacityInUse(){
public void Set(int index, int i){
if(index > arr.Length -1 || index < 0){
throw new Exception("Array out of bounds");
public int Get(int index){
if(index > arr.Length - 1 || index < 0){
throw new Exception("out of bounds");
void EnsureExtraCapacity(){
int[] newArray = new int[arr.Length * 2];
for(int x = 0; x < size; x++){