Convert an array into a zig-zag fashion

Write a program to convert an array into a zig-zag fashion.

Example:

Input: arr={4,3,7,8,6,2,1}
Output: 3 7 4 8 6 2 1 

Approach

C++

#include <bits/stdc++.h>
using namespace std;

void zigZagArray(vector<int&arr)
{

    bool flag = true;
    for (int i = 0i < arr.size() - 3i++)
    {
        if (flag)
        {
            if (arr[i] > arr[i + 1])
            {
                swap(arr[i]arr[i + 1]);
            }
        }
        else
        {
            if (arr[i] < arr[i + 1])
            {
                swap(arr[i]arr[i + 1]);
            }
        }

        //change the flag value
        flag = !flag;
    }
}
int main()
{
    vector<intarr = {4378621};

    zigZagArray(arr);

    for (int i = 0i < arr.size(); i++)
    {
        cout << arr[i] << " ";
    }

    return 0;
}


No comments:

Post a Comment