Array |
|
|
|
|
|
|
|
|
Chunk array |
Easy |
N/A |
Array |
ArrayChunk.cs |
ArrayChunk.java |
chunk.js |
array_chunk.py |
chunk.go |
Intersection of two arrays |
Easy |
Leetcode |
Array |
Intersect.cs |
Intersect.java |
intersect.js |
intersect.py |
|
Check if an array is sorted |
Easy |
N/A |
Array |
IsSorted.cs |
IsSorted.java |
issorted.js |
is_sorted.py |
|
Create a spiral matrix |
Medium |
N/A |
Array |
Matrix.cs |
Matrix.java |
matrix.js |
matrix.py |
|
Maximum subarray mod sum |
Hard |
HackerRank |
Array |
MaxSubArrayModSum.cs |
MaxSubArrayModSum.java |
maxSubArrayModSum.js |
max_subarray_modsum.py |
|
Maximum subarray sum |
Medium |
Leetcode |
Array |
MaxSubArraySum.cs |
MaxSubArraySum.java |
maxSubArraySum.js |
max_subarray_sum.py |
|
Missing number in array |
Easy |
N/A |
Array |
Missing.cs |
Missing.java |
missing.js |
missing.py |
|
Move zeroes |
Easy |
Leetcode |
Array |
MovingZeroes.cs |
MovingZeroes.java |
moveZeroes.js |
moving_zeroes.py |
|
Plus one |
Medium |
Leetcode |
Array |
PlusOne.cs |
PlusOne.java |
plusOne.js |
plus_one.py |
|
Remove duplicates from sorted array |
Easy |
Leetcode |
Array |
RemoveDuplicates.cs |
RemoveDuplicates.java |
removeDuplicates.js |
remove_duplicates.py |
|
Rotate an array |
Medium |
Leetcode |
Array |
RotateArray.cs |
RotateArray.java |
rotateArray.js |
rotate_array.py |
|
Rotate image |
Medium |
Leetcode |
Array |
RotateImage.cs |
RotateImage.java |
rotateImage.js |
rotate_image.py |
|
Sock merchant |
Easy |
HackerRank |
Array |
SockMerchant.cs |
SocketMerchant.java |
sockMerchant.js |
sock_merchant.py |
|
Triple sum |
Medium |
HackerRank |
Array |
TripleSum.cs |
TripleSum.java |
tripleSum.js |
triple_sum.py |
|
Two sum |
Easy |
Leetcode |
Array |
TwoSum.cs |
TwoSum.java |
twoSum.js |
two_sum.py |
|
Two sum - 1 |
Medium |
FreeCodeCamp |
Array |
|
|
twoSum1.js |
|
|
Valid Sodoku |
Medium |
Leetcode |
Array |
ValidSudoku.cs |
ValidSudoku.java |
validSudoku.js |
validate_sudoku.py |
|
Assorted |
|
|
|
|
|
|
|
|
Crossword puzzle |
Hard |
HackerRank |
Assorted |
N/A |
N/A |
crosswordPuzzle.js |
N/A |
|
Make candies |
Hard |
HackerRank |
Assorted |
MakeCandies.cs |
MakeCandies.java |
makeCandies.js |
make_candies.py |
|
Max profit |
Medium |
Leetcode |
Assorted |
MaxProfit.cs |
MaxProfit.java |
maxProfit.js |
max_profit.py |
|
Minimum time |
Medium |
HackerRank |
Assorted |
MinTime.cs |
MinTime.java |
minTime.js |
min_time.py |
|
Draw pyramid |
Easy |
N/A |
Assorted |
Pyramid.cs |
DrawPyramid.java |
pyramid.js |
pyramid.py |
|
Draw steps |
Easy |
N/A |
Assorted |
Steps.cs |
DrawSteps.java |
steps.js |
steps.py |
|
Update inventory |
Easy |
FreeCodeCamp |
Hash Table, Array |
|
|
updateInventory.js |
|
|
Opened doors |
Medium |
FreeCodeCamp |
Rosetta |
|
|
openedDoors.js |
|
|
Dynamic |
|
|
|
|
|
|
|
|
Grid traveler |
Medium |
N/A |
Dynamic |
GridTraveler.cs |
GridTraveler.java |
gridTraveler.js |
grid_traveler.py |
|
If a target number can be generated by adding numbers from a given array |
Hard |
N/A |
Dynamic |
CanSum.cs |
CanSum.java |
canSum.js |
can_sum.py |
|
Get all the combinations of numbers from a given array that can add up to the target number |
Hard |
N/A |
Dynamic |
HowSum.cs |
HowSum.java |
howSum.js |
how_sum.py |
|
Get the shortest combination of numbers from a given array that can add up to the target number |
Hard |
N/A |
Dynamic |
BestSum.cs |
BestSum.java |
bestSum.js |
best_sum.py |
|
If a target string can be constructed by the strings from a given array |
Hard |
N/A |
Dynamic |
CanConstruct.cs |
CanConstruct.java |
canConstruct.js |
can_construct.py |
|
Get all the combinations of strings from a given array that can construct to the target string |
Hard |
N/A |
Dynamic |
AllConstruct.cs |
AllConstruct.java |
allConstruct.js |
all_construct.py |
|
Count the number of combinations of strings from a given array that can construct to the target string |
Hard |
N/A |
Dynamic |
CountConstruct.cs |
CountConstruct.java |
countConstruct.js |
count_construct.py |
|
Longest common substring |
Hard |
HackerRank |
Dynamic |
CommonChild.cs |
CommonChild.java |
commonChild.js |
common_child.py |
|
Greedy |
|
|
|
|
|
|
|
|
Greedy florist |
Medium |
HackerRank |
Greedy |
GreedyFlorist.cs |
GreedyFlorist.java |
greedyFlorist.js |
greedy_florist.py |
|
Luck Balance |
Easy |
HackerRank |
Greedy |
LuckBalance.cs |
LuckBalance.java |
luckBalance.js |
luck_balance.py |
|
Max Min |
Medium |
HackerRank |
Greedy |
MaxMin.cs |
MaxMin.java |
maxMin.js |
max_min.py |
|
Minimum absolute difference |
Easy |
HackerRank |
Greedy |
MinimumAbsoluteDifference.cs |
MinimumAbsoluteDifference.java |
minimumAbsoluteDifference.js |
min_absolute_diff.py |
|
Reverse shuffle merge |
Hard |
HackerRank |
Greedy |
ReverseShuffleMerge.cs |
ReverseShuffleMerge.java |
reverseShuffleMerge.js |
reverse_shuffle_merge.py |
|
Math |
|
|
|
|
|
|
|
|
Find out combinations |
Hard |
N/A |
Math, Dynamic |
|
|
combinations.js |
|
|
Factorial |
Easy |
N/A |
Math, Dynamic |
|
|
factorial.js |
|
|
The sum of even numbers in a Fibonacci sequence |
Medium |
FreeCodeCamp |
Math |
|
|
fiboEvenSum.js |
|
|
Fibonacci |
Easy |
N/A |
Dynamic, Math |
Fibonacci.cs |
Fibonacci.java |
fibonacci.js |
fibonacci.py |
|
Fizzbuzz |
Easy |
N/A |
Math |
Fizzbuzz.cs |
Fizzbuzz.java |
fizzbuzz.js |
fizzbuzz.py |
|
Integer partition |
Hard |
N/A |
Math, Dynamic |
|
|
integerPartition.js |
|
|
Count integer partitions |
Hard |
FreeCodeCamp |
Math |
|
|
countIntegerPartitions.js |
|
|
Is prime number |
Easy |
N/A |
Math |
IsPrime.cs |
IsPrime.java |
isprime.js |
is_prime.py |
is_prime.go |
Find out permutations |
Hard |
Leetcode |
Dynamic, Math |
Permutations.cs |
Permutations.java |
permutations.js |
permutations.py |
|
No repeated consecutive permutations |
Hard |
FreeCodeCamp |
Math, Dynamic |
|
|
noRepeatPermutations.js |
|
|
Symmectric difference |
Medium |
FreeCodeCamp |
Math, Dynamic |
|
|
symmetricDiff.js |
|
|
Solve24 |
Hard |
FreeCodeCamp |
Rosetta |
|
|
solve24.js |
|
|
String |
|
|
|
|
|
|
|
|
Anagrams |
Easy |
Leetcode |
String, Hash table |
Anagrams.cs |
Anagrams.java |
anagrams.js |
anagrams.py |
|
Capitalize a string |
Easy |
N/A |
String |
Capitalize.cs |
Capitalize.java |
capitalize.js |
capitalize.py |
|
Check permutations |
Easy |
N/A |
String, Hash table |
CheckPermutations.cs |
CheckPermutations.java |
checkPermutation.js |
permutation.py |
|
Defanging IP |
Easy |
Leetcode |
String |
DefangingIP.cs |
DefangingIP.java |
defangingIP.js |
defanging_ip.py |
|
First unique character in a string |
Easy |
Leetcode |
String, Hash table |
FirstUniqueChar.cs |
FirstUniqueChar.cs |
firstUniqueChar.js |
first_unique_char.py |
|
Is curly braces balanced |
Easy |
N/A |
String |
IsBalanced.cs |
IsBalanced.java |
isBalanced.js |
balanced.py |
|
All characters are unique in a string |
Easy |
N/A |
String, Hash table |
IsUnique.cs |
IsUnique.java |
isUnique.js |
unique.py |
|
Longest palindrome substring |
Medium |
Leetcode |
String |
|
|
longestPalindromeSubstring.js |
|
|
Longest substring without repeat characters |
Medium |
Leetcode |
String, Sliding window |
|
|
longestSubstring.js |
|
|
Making anagrams |
Medium |
HackerRank |
String, Hash table |
MakeAnagrams.cs |
MakeAnagrams.java |
makeAnagrams.js |
make_anagrams.py |
|
Most commonly used character in a string |
Easy |
N/A |
String, Hash table |
MaxChar.cs |
MaxChar.java |
maxChar.js |
max_char.py |
|
One away |
Medium |
N/A |
String |
OneAway.cs |
OneAway.java |
oneAway.js |
one_away.py |
|
Check if a string is palindrome |
Easy |
N/A |
String |
Palindrome.cs |
Palindrome.java |
palindrome.js |
palindrome.py |
|
Check if a string is a permutation of a palindrome |
Easy |
N/A |
String, Hash table |
PalindromePermutation.cs |
PalindromePermutation.java |
palindromePermutation.js |
palindrome_permutation.py |
|
Remove vowels from a string |
Easy |
N/A |
String |
RemoveVowels.cs |
RemoveVowels.java |
removeVowels.js |
remove_vowels.py |
|
Reverse an integer |
Easy |
N/A |
String |
ReverseInt.cs |
ReverseInteger.java |
reverseint.js |
reverse_int.py |
|
Reverse a string |
Easy |
N/A |
String |
ReverseStr.cs |
ReverseString.java |
reversestring.js |
reverse_string.py |
|
Special palindrome |
Medium |
HackerRank |
String |
SpecialString.cs |
SpecialString.java |
specialString.js |
special_string.py |
|
String compression |
Easy |
N/A |
String |
StringCompression.cs |
StringCompression.java |
stringCompression.js |
string_compress.py |
|
String rotation |
Easy |
N/A |
String |
StringRotation.cs |
StringRotation.java |
stringRotation.js |
string_rotation.py |
|
Convert string to integer |
Easy |
Leetcode |
String |
|
|
stringToInteger.js |
|
|
All characters appear same time in a string |
Medium |
HackerRank |
String |
ValidString.cs |
ValidString.java |
validString.js |
valid_string.py |
|
Get the number of vowels in a string |
Easy |
N/A |
String |
Vowels.cs |
|
vowels.js |
count_vowels.py |
|
Convert a string in a zigzag pattern |
Easy |
Leetcode |
String |
|
|
zigzagConversion.js |
|
|
DS - Graph |
|
|
|
|
|
|
|
|
Implement a graph and relevant methods |
Medium |
N/A |
Graph |
Graph.cs |
Graph.java |
graph.js |
graph.py |
|
DS - Hash table |
|
|
|
|
|
|
|
|
Implement hash table and relevant methods |
Medium |
N/A |
Hash table |
HashTable.cs |
HashTable.java |
hashTable.js |
hash.py |
|
DS - Linked list |
|
|
|
|
|
|
|
|
Implement linked list and relevant methods |
Medium |
N/A |
Linked list |
MyLinkedList.cs |
MyLinkedList.java |
linkedlist.js |
linkedlist.py |
|
Implement doubly linked list and relevant methods |
Medium |
N/A |
Linked list |
|
|
doublyLinkedList.js |
|
|
Check if a linked list is circular |
Medium |
N/A |
Linked list |
Circular.cs |
Circular.java |
circular.js |
circular.py |
|
Get the last n-th node of a linked list |
Medium |
N/A |
Linked list |
SearchFromLast.cs |
SearchFromLast.java |
fromlast.js |
fromlast.py |
|
Get the middle node of a linked list |
Medium |
N/A |
Linked list |
MidPoint.cs |
MidPoint.java |
midpoint.js |
midpoint.py |
|
Partition a linked list by a given number |
Hard |
N/A |
Linked list |
Partition.cs |
Partition.java |
partition.js |
partition.py |
|
Remove duplicate nodes from a linked list |
Medium |
N/A |
Linked list |
RemoveDuplicate.cs |
RemoveDuplicate.java |
removeDuplicate.js |
remove_duplicate.py |
|
Sum two numbers represented by linked list |
Hard |
N/A |
Linked list |
SumLists.cs |
SumLists.java |
sumLists.js |
sumlists.py |
|
DS - Tree |
|
|
|
|
|
|
|
|
Implement a tree |
Medium |
N/A |
Tree |
Tree.cs |
Tree.java |
tree.js |
tree.py |
|
Implement a binary search tree |
Medium |
N/A |
Tree |
BinarySearchTree.cs |
Bst.java |
bst.js |
bst.py |
|
Validate a binary search tree |
Medium |
N/A |
Tree |
BinarySearchTree.cs |
Bst.java |
bst-val.js |
bst_val.py |
|
Implement three ways to traverse a binary tree |
Medium |
N/A |
Tree |
BTreeTraverse.cs |
BTreeTraverse.java |
bTreeTraverse.js |
btree_traverse.py |
|
The width of each level of a tree |
Hard |
N/A |
Tree |
N/A |
LevelWidth.java |
levelwidth.js |
levelwidth.py |
|
Read all nodes of a binary search tree |
Hard |
N/A |
Tree |
ListOfDepths.cs |
ListOfDepths.java |
listOfDepth.js |
depthslist.py |
|
Create a binary search tree with minimal height |
Hard |
N/A |
Tree |
MinimalTree.cs |
MinimalBst.java |
minimalTree.js |
minimal_bst.py |
|
Swap nodes of a tree |
Hard |
HackerRank |
Tree |
SwapNodes.cs |
SwapNodes.java |
swapNodes.js |
swap_nodes.py |
|
Implement a trie |
Hard |
FreeCodeCamp |
Tree |
|
|
trie.js |
|
|
DS - Stack and Queue |
|
|
|
|
|
|
|
|
Implement a stack and relevant methods |
Easy |
N/A |
Stack |
|
|
stack.js |
stack.py |
|
Implement a queue and relevant methods |
Easy |
N/A |
Queue |
|
|
queue.js |
queue.py |
|
Animal queue |
Medium |
N/A |
Queue |
AnimalQueue.cs |
AnimalQueue.java |
animalQueue.js |
animal_queue.py |
|
Priority queue |
Medium |
FreeCodeCamp |
Queue |
|
|
priorityQueue.js |
|
|
Circular queue |
Medium |
FreeCodeCamp |
Queue |
|
|
circularQueue.js |
|
|
Get the minimum number of a stack |
Easy |
N/A |
Stack |
GetMin.cs |
GetMin.java |
getMin.js |
get_min.py |
|
Check if a string has balanced brackets |
Medium |
HackerRank |
Stack |
IsBalanced.cs |
IsBalanced.java |
isBalanced2.js |
is_balanced.py |
|
Largest rectangle |
Medium |
Leetcode |
Stack |
LargestRectangle.cs |
LargestRectangle.java |
largestRectangle.js |
largest_rectangle.py |
|
Queue from stack |
Medium |
N/A |
Stack, Queue |
QueueFromStack.cs |
QueueFromStack.java |
qfroms.js |
queue_from_stack.py |
|
Set of stacks |
Medium |
N/A |
Stack |
SetOfStacks.cs |
SetOfStacks.java |
setOfStacks.js |
stack_set.py |
|
Sort a stack |
Medium |
N/A |
Stack |
SortStack.cs |
SortStack.java |
sortStack.js |
sort_stack.py |
|
Weave two queues |
Medium |
N/A |
Queue |
Weave.cs |
Weave.java |
weave.js |
weave.py |
|
Linear search |
Easy |
N/A |
Searching |
LinearSearch.cs |
LinearSearch.java |
linearSearch.js |
linear_search.py |
|
DS - Set |
|
|
|
|
|
|
|
|
Implement a set |
Easy |
N/A |
Set |
|
|
set.js |
|
|
DS - Heap |
|
|
|
|
|
|
|
|
Implement a max heap and its relevant methods |
Easy |
N/A |
Heap |
|
|
maxHeap.js |
|
|
Implement a min heap and its relevant methods |
Easy |
N/A |
Heap |
|
|
minHeap.js |
|
|
Searching |
|
|
|
|
|
|
|
|
Binary search |
Medium |
N/A |
Searching |
BinarySearch.cs |
BinarySearch.java |
binarySearch.js |
binary_search.py |
|
Jump search |
Medium |
N/A |
Searching |
JumpSearch.cs |
JumpSearch.java |
jumpSearch.js |
jump_search.py |
|
Interpolation Search |
Medium |
N/A |
Searching |
InterpolationSearch.cs |
InterpolationSearch.java |
interpolationSearch.js |
interpolation_search.py |
|
Exponential search |
Medium |
N/A |
Searching |
ExponentialSearch.cs |
ExponentialSearch.java |
exponentialSearch.js |
exponential_search.py |
|
Sorting |
|
|
|
|
|
|
|
|
Bubble sort |
Medium |
N/A |
Sorting |
Sorting.cs |
BubbleSort.java |
bubbleSort.js |
bubble_sort.py |
|
Counting sort |
Medium |
N/A |
Sorting |
CountingSort.cs |
CountingSort.java |
countingSort.js |
counting_sort.py |
|
Merge sort |
Hard |
N/A |
Sorting |
Sorting.cs |
MergeSort.java |
mergeSort.js |
merge_sort.py |
|
Quick sort |
Medium |
N/A |
Sorting |
|
|
quickSort.js |
|
|
Selection sort |
Hard |
N/A |
Sorting |
Sorting.cs |
SelectionSort.java |
selectionSort.js |
selection_sort.py |
|
Find the median of two sorted arrays |
Medium |
Leetcode |
Sorting |
|
|
medianSorted.js |
|
|
Get how many times of inversions required to sort an array |
Hard |
HackerRank |
Sorting |
CountInversions.cs |
CountInversions.java |
countInversions.js |
count_inversions.py |
|
Fradulent activity notice |
Hard |
HackerRank |
Sorting |
FradulentActivityNotice.cs |
FradulentActivityNotice.java |
fradulentActivityNotice.js |
fradulent_activity_notice.py |
|
JS specific |
|
|
|
|
|
|
|
|
Implement Array.prototype.at method |
Easy |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
arrayAt.js |
N/A |
|
Implement Array.prototype.map method |
Easy |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
arrayMap.js |
N/A |
|
Implement Lodash function: countBy |
Easy |
GreatFrontEnd |
Lodash |
N/A |
N/A |
countBy.js |
N/A |
|
Implement Lodash curry function |
Hard |
GreatFrontEnd |
Lodash |
N/A |
N/A |
curry.js |
N/A |
|
Implement Lodash function: debounce function |
Medium |
GreatFrontEnd |
Lodash |
N/A |
N/A |
debounce.js |
N/A |
|
Deep clone an object |
Hard |
GreatFrontEnd |
Lodash |
N/A |
N/A |
deepClone.js |
N/A |
|
Creat an event library |
Hard |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
events.js |
N/A |
|
Implement Array.prototype.filter method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
filter.js |
N/A |
|
Implement Array.prototype.findIndex method |
Easy |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
findIndex.js |
N/A |
|
Implement Array.prototype.findLastIndex method |
Easy |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
findLastIndex.js |
N/A |
|
Flatten an array |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
flatten.js |
N/A |
|
Implement Function.prototype.apply method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
functionApply.js |
N/A |
|
Implement Function.prototype.call method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
functionCall.js |
N/A |
|
Implement Lodash function: get |
Medium |
GreatFrontEnd |
Lodash |
N/A |
N/A |
get.js |
N/A |
|
Implement Lodash function: groupBy |
Medium |
GreatFrontEnd |
Lodash |
N/A |
N/A |
groupBy.js |
N/A |
|
Implement Array.prototype.indexOf method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
indexof.js |
N/A |
|
Implement Lodash function: intersectionBy |
Easy |
GreatFrontEnd |
Lodash |
N/A |
N/A |
intersectionBy.js |
N/A |
|
Implement Lodash function: intersectionWith |
Hard |
GreatFrontEnd |
Lodash |
N/A |
N/A |
intersectionWith.js |
N/A |
|
Implement Lodash function: once |
Hard |
GreatFrontEnd |
Lodash |
N/A |
N/A |
once.js |
N/A |
|
Implement Promise.all method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
promiseAll.js |
N/A |
|
Implement Promise.allSettled method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
promiseAllSettled.js |
N/A |
|
Implement Promise.any method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
promiseAny.js |
N/A |
|
Implement Promise.race method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
promiseRace.js |
N/A |
|
Implement Array.prototype.reduce method |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
reduce.js |
N/A |
|
Implement type check utility functions |
Medium |
GreatFrontEnd |
JS Polyfills |
N/A |
N/A |
typeUtilities.js |
N/A |
|