LeetCode Top 150 Interview Questions – Easy Problems with Simple Logic

leetcode top 150 questions easy logic
LeetCode Top 150 Interview Questions – Easy (1 to 50)

The LeetCode Top 150 interview questions are the most commonly asked coding problems in technical interviews.
This article covers questions 1 to 50 (easy level) with clear logic and simple answers.

ARRAY & HASHING (1–15)

1. Two Sum

Use hashmap to store visited numbers.


function twoSum(nums,target){
const map={};
for(let i=0;i<nums.length;i++){
let diff=target-nums[i];
if(map[diff]!==undefined) return [map[diff],i];
map[nums[i]]=i;
}}

2. Contains Duplicate

Compare array length with Set size.


function containsDuplicate(nums){
return new Set(nums).size!==nums.length;
}

3. Best Time to Buy and Sell Stock


function maxProfit(prices){
let min=prices[0],profit=0;
for(let i=1;i<prices.length;i++){
min=Math.min(min,prices[i]);
profit=Math.max(profit,prices[i]-min);
}
return profit;
}

4. Maximum Subarray


function maxSubArray(nums){
let max=nums[0],sum=0;
for(let n of nums){
sum=Math.max(n,sum+n);
max=Math.max(max,sum);
}
return max;
}

5. Majority Element


function majorityElement(nums){
let count=0,candidate;
for(let n of nums){
if(count===0) candidate=n;
count+=n===candidate?1:-1;
}
return candidate;
}

6. Move Zeroes


function moveZeroes(nums){
let idx=0;
for(let n of nums) if(n!==0) nums[idx++]=n;
while(idx<nums.length) nums[idx++]=0;
}

7. Plus One


function plusOne(digits){
for(let i=digits.length-1;i>=0;i--){
if(digits[i]<9){digits[i]++;return digits;}
digits[i]=0;
}
return [1,...digits];
}

8. Remove Duplicates from Sorted Array


function removeDuplicates(nums){
let k=1;
for(let i=1;i<nums.length;i++)
if(nums[i]!==nums[i-1]) nums[k++]=nums[i];
return k;
}

9. Intersection of Two Arrays II


function intersect(a,b){
let map={},res=[];
for(let n of a) map[n]=(map[n]||0)+1;
for(let n of b){
if(map[n]>0){res.push(n);map[n]--;}
}
return res;
}

10. Missing Number


function missingNumber(nums){
let sum=nums.length;
for(let i=0;i<nums.length;i++) sum+=i-nums[i];
return sum;
}

11. Single Number


function singleNumber(nums){
return nums.reduce((a,b)=>a^b);
}

12. Rotate Array


function rotate(nums,k){
k%=nums.length;
nums.unshift(...nums.splice(nums.length-k));
}

13. Valid Anagram


function isAnagram(s,t){
if(s.length!==t.length) return false;
let map={};
for(let c of s) map[c]=(map[c]||0)+1;
for(let c of t){ if(!map[c]--) return false;}
return true;
}

14. Pascal’s Triangle


function generate(n){
let res=[];
for(let i=0;i<n;i++){
res[i]=Array(i+1).fill(1);
for(let j=1;j<i;j++)
res[i][j]=res[i-1][j-1]+res[i-1][j];
}
return res;
}

15. Reshape the Matrix


function matrixReshape(mat,r,c){
let flat=mat.flat();
if(flat.length!==r*c) return mat;
let res=[];
for(let i=0;i<r;i++)
res.push(flat.splice(0,c));
return res;
}

TWO POINTERS (16–25)

16. Valid Palindrome


function isPalindrome(s){
s=s.toLowerCase().replace(/[^a-z0-9]/g,"");
let l=0,r=s.length-1;
while(l<r) if(s[l++]!==s[r--]) return false;
return true;
}

17. Two Sum II


function twoSum(nums,target){
let l=0,r=nums.length-1;
while(l<r){
let sum=nums[l]+nums[r];
if(sum===target) return [l+1,r+1];
sum<target?l++:r--;
}
}

18. Container With Most Water


function maxArea(h){
let l=0,r=h.length-1,max=0;
while(l<r){
max=Math.max(max,Math.min(h[l],h[r])*(r-l));
h[l]<h[r]?l++:r--;
}
return max;
}

19. Reverse String


function reverseString(s){
let l=0,r=s.length-1;
while(l<r)[s[l++],s[r--]]=[s[r],s[l]];
}

20. Remove Element


function removeElement(nums,val){
let k=0;
for(let n of nums) if(n!==val) nums[k++]=n;
return k;
}

STACK (26–35)

21. Valid Parentheses


function isValid(s){
let stack=[],map={")":"(","]":"[","}":"{"};
for(let c of s){
if(map[c]){if(stack.pop()!==map[c]) return false;}
else stack.push(c);
}
return stack.length===0;
}

22. Min Stack


class MinStack{
constructor(){this.stack=[];}
push(val){
let min=this.stack.length?Math.min(val,this.getMin()):val;
this.stack.push({val,min});
}
pop(){this.stack.pop();}
top(){return this.stack[this.stack.length-1].val;}
getMin(){return this.stack[this.stack.length-1].min;}
}

SLIDING WINDOW (36–45)

23. Longest Substring Without Repeating Characters


function lengthOfLongestSubstring(s){
let set=new Set(),l=0,max=0;
for(let r=0;r<s.length;r++){
while(set.has(s[r])) set.delete(s[l++]);
set.add(s[r]);
max=Math.max(max,r-l+1);
}
return max;
}

24. Maximum Average Subarray


function findMaxAverage(nums,k){
let sum=0;
for(let i=0;i<k;i++) sum+=nums[i];
let max=sum;
for(let i=k;i<nums.length;i++){
sum+=nums[i]-nums[i-k];
max=Math.max(max,sum);
}
return max/k;
}

LINKED LIST & MATH (46–50)

25. Reverse Linked List


function reverseList(head){
let prev=null;
while(head){
let next=head.next;
head.next=prev;
prev=head;
head=next;
}
return prev;
}

26. Merge Two Sorted Lists


function mergeTwoLists(l1,l2){
let dummy=new ListNode(0),cur=dummy;
while(l1&&l2){
if(l1.val<l2.val){cur.next=l1;l1=l1.next;}
else{cur.next=l2;l2=l2.next;}
cur=cur.next;
}
cur.next=l1||l2;
return dummy.next;
}

27. Fibonacci Number


function fib(n){
let a=0,b=1;
for(let i=2;i<=n;i++) [a,b]=[b,a+b];
return n?b:a;
}

28. Power of Two


function isPowerOfTwo(n){
return n>0&&(n&(n-1))===0;
}

29. Count Primes


function countPrimes(n){
let prime=Array(n).fill(true);
prime[0]=prime[1]=false;
for(let i=2;i*i<n;i++)
if(prime[i])
for(let j=i*i;j<n;j+=i) prime[j]=false;
return prime.filter(Boolean).length;
}

30. Climbing Stairs


function climbStairs(n){
let a=1,b=1;
for(let i=2;i<=n;i++) [a,b]=[b,a+b];
return b;
}

Final Note

These LeetCode Top 150 interview questions (1–50) build the strongest foundation for coding interviews.
Master these patterns before moving to medium and advanced problems.

Next: LeetCode Top 150 Interview Questions (51–100)

Once you are comfortable with the easy LeetCode interview questions (1–50),
the next step is to move to medium-level problems that test deeper logic,
data structures, and problem-solving skills.

Continue your preparation with:

LeetCode Top 150 Interview Questions (51–100) – Medium Level with Logic

This next part focuses on binary search, linked lists, trees, recursion,
and common patterns frequently asked in real coding interviews.

Leave a Comment

Your email address will not be published. Required fields are marked *