Fully Solved Array 101 section | c++ | Popular Questions on Arrays

Please upvote if you find this post helpful
This post has all the solutions for the Explore Arrays 101 section . It has 18 questions

Max Consecutive Ones

int findMaxConsecutiveOnes(vector<int>& nums) {
        int count=0;
        int _max=0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]==1)
            {
                count++;
            }
            
            if(nums[i]==0)
            {
                count=0;
            }
            _max=max(_max,count);
        }
        return _max;
    }

Find Numbers with Even Number of Digits

bool even_digits(int a)
    {
        int temp=a;
        int c=0;
        while(temp!=0)
        {
            temp=temp/10;
            c++;
        }
        if(c%2==0)
        {
            return true;
        }
        return false;
    }
    int findNumbers(vector<int>& nums) {
    int count=0;
    for(int i=0;i<nums.size();i++)
    {
        if(even_digits(nums[i]))
        {
            count++;
        }
    }
        return count;
    }

Squares of a Sorted Array

vector<int> sortedSquares(vector<int>& nums) {
    for(int i=0;i<nums.size();i++)
    {
        nums[i]=nums[i]*nums[i];
    }
        sort(nums.begin(),nums.end());
        return nums;
    }

Duplicate Zeros

void duplicateZeros(vector<int>& arr) {
    vector<int> res;
        for(int i=0;i<arr.size();i++)
        {
            if(arr[i]==0)
            {
                res.push_back(0);
                res.push_back(0);
            }
            else{
                res.push_back(arr[i]);
        }
        }
        for(int i=0;i<arr.size();i++)
        {
            arr[i]=res[i];
        }
    }

Merge Sorted Array

void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int p1 = m-1, p2 = n-1, i = m+n-1;
        while(p2 >= 0){
            if(p1 >= 0 && nums1[p1] > nums2[p2]){
                nums1[i--] = nums1[p1--];
            }
            else {
                nums1[i--] = nums2[p2--];
            }
        }
    }

Remove Element

int removeElement(vector<int>& nums, int val) {
   int index=0;
        for(int i:nums)
        {
       if(i!=val)
        {
          nums[index]=i;
           index++;
        }
        }
        return index;
    }

Remove Duplicates from Sorted Array

int removeDuplicates(vector<int>& nums) {
    int local = 1;
        if(nums.size()==0)
        {
            return 0;
        }
        for(int i = 1; i < nums.size(); i++){
            if(nums[local-1]!=nums[i]){
                nums[local]=nums[i];
                local++;
            }
        }
        return local;    
    }

Check If N and Its Double Exist

bool checkIfExist(vector<int>& arr) {
    for(int i=0;i<arr.size();i++)
    {
        int element=arr[i];
        for(int j=i+1;j<arr.size();j++)
        {
            if(arr[j]==2*element || 2*arr[j]==element)
            {
                return true;
            }
        }
    }
        return false;
    }

Valid Mountain Array

bool validMountainArray(vector<int>& arr) {
    int i=0;
        while(i<arr.size() && i+1 < arr.size() && arr[i]<arr[i+1])
        {
            i++;
        }
        if(i==0 || i+1==arr.size())
        {
            return false;
        }
        while(i<arr.size() && i+1<arr.size())
        {
            if(arr[i]<=arr[i++ +1])
            {
                return false;
            }
        }
        return true;
    }

Replace Elements with Greatest Element on Right Side

	vector<int> replaceElements(vector<int>& arr) {
		vector<int> res;
        int maxi=-1;
        if(arr.size()==0)
        {
            return res;
        }
        for(int i=0;i<arr.size()-1;i++)
        {
            int maxi=-1;
            for(int j=i+1;j<arr.size();j++)
            {
                int element=arr[j];
                maxi=max(element,maxi);
            }
            res.push_back(maxi);
        }
        res.push_back(-1);
        return res;
    }

Remove Duplicates from Sorted Array

	class Solution {
	public:
    int removeDuplicates(vector<int>& nums) {
    int local = 1;
        if(nums.size()==0)
        {
            return 0;
        }
        for(int i = 1; i < nums.size(); i++){
            if(nums[local-1]!=nums[i]){
                nums[local]=nums[i];
                local++;
            }
        }
        return local;    
    }
};

Move Zeroes

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        for(int i=0;i<nums.size();i++)
    {
        for(int j=i+1;j<nums.size();j++)
        {
            if(nums[i]==0 && nums[j]!=0)
            {
                int temp=nums[i];
                nums[i]=nums[j];
                nums[j]=temp;
            }
        }
    }
    }
};

Sort Array By Parity

vector<int> sortArrayByParity(vector<int>& A) {
        int n=A.size();
        vector<int> res(n,0);
        int a=0;
        int b=n-1;
        for(int i=0;i<A.size();i++)
        {
            if(A[i]%2==0)
            {
                res[a]=A[i];
                a++;
            }
            else{
                res[b]=A[i];
                b--;
            }
        }
        return res;
    }

Remove Element

int removeElement(vector<int>& nums, int val) {
   int index=0;
        for(int i:nums)
        {
       if(i!=val)
        {
          nums[index]=i;
           index++;
        }
        }
        return index;
    }

Height Checker

int heightChecker(vector<int>& heights) {
    int c=0;
        vector<int> temp=heights;
        sort(temp.begin(),temp.end());
        for(int i=0;i<heights.size();i++)
        {
            if(temp[i]!=heights[i])
            {
                c++;
            }
        }
        return c;
    }

Third Maximum Number

int thirdMax(vector<int>& nums) {
    set<int> s(nums.begin(),nums.end());
        priority_queue<int> pq(s.begin(),s.end());
        if(pq.size()==1||pq.size()==2)
            
        {
            return pq.top();
        }
        pq.pop();
        pq.pop();
        return pq.top();
        
    }

Find All Numbers Disappeared in an Array

vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> v;
        unordered_map<int, int> map;
        
        for(int x : nums)
            map[x]++;
        
        for(int i=1 ; i<=nums.size() ; i++)
		{
            if(map.find(i) == map.end())
                v.push_back(i);
        }
        return v;
    }

Squares of a Sorted Array

vector<int> sortedSquares(vector<int>& nums) {
    for(int i=0;i<nums.size();i++)
    {
        nums[i]=nums[i]*nums[i];
    }
        sort(nums.begin(),nums.end());
        return nums;
    }

Please upvote if you find the post helpful :)
I am not taking credit for all the solutions , i have learnt some of them from discuss section :) and most of them beat around 85% - 95% of cpp submissions . Thankyou

Comments (0)