Skip to content

Latest commit

 

History

History
168 lines (166 loc) · 61 KB

problems.md

File metadata and controls

168 lines (166 loc) · 61 KB

Problems List

Algorithms and Data Structure

Title Difficulty Source Tags C# Solution Java Solution JS Solution Python Solution Go Solution
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