Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 1.11 KB

41.md

File metadata and controls

63 lines (46 loc) · 1.11 KB

Method 1

vector<int> rearrangeArray(vector<int>& nums) {
        vector<int>posi;
        vector<int>neg;

        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]>=0)
                posi.push_back(nums[i]);
            else
                neg.push_back(nums[i]);
        }

        vector<int>ans;

        int pi=0;
        while(pi!=posi.size())
        {
            ans.push_back(posi[pi]);
            ans.push_back(neg[pi]);

            pi++;
        }

        return ans;
    }

Method 2 (Using 2 pointers)

alt text

vector<int> rearrangeArray(vector<int>& nums) {
        
        vector<int>ans(nums.size(),0);

        int pos=0,neg=1;

        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]>=0)
            {
                ans[pos]=nums[i];
                pos+=2;
            }
            else
            {
                ans[neg]=nums[i];
                neg+=2;
            }
        }

        return ans;
    }