Please upvote if you find this post helpful
This post has all the solutions for the Explore Arrays 101 section . It has 18 questions
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;
}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;
}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;
}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];
}
}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--];
}
}
}int removeElement(vector<int>& nums, int val) {
int index=0;
for(int i:nums)
{
if(i!=val)
{
nums[index]=i;
index++;
}
}
return index;
}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;
}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;
}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;
} 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;
} 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;
}
};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;
}
}
}
}
};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;
}int removeElement(vector<int>& nums, int val) {
int index=0;
for(int i:nums)
{
if(i!=val)
{
nums[index]=i;
index++;
}
}
return index;
}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;
}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();
}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;
}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