Home

Awesome

<p align="center"> <a href="https://www.facebook.com/groups/codingip"> <img align="left" height=85 src="https://static1.squarespace.com/static/5994a0f17131a5643f407c37/t/5bf9070c0ebbe88c3392b17c/1543047009836/facebook_button.png"> </a> <a align="center" href="https://www.hackerrank.com/Kanahaiya"> <img height=85 src="https://d3keuzeb2crhkn.cloudfront.net/hackerrank/assets/styleguide/logo_wordmark-f5c5eb61ab0a154c3ed9eda24d0b9e31.svg"> </a> <a href="https://www.youtube.com/c/JavaAidTutorials?sub_confirmation=1"> <img align="right" height=85 src="https://www.freepngimg.com/thumb/subscribe/4-2-subscribe-png-2.png"> </a> <p/> This repository contains <b>efficient hackerrank solutions</b> for most of the <b>hackerrank challenges</b> including <b><a href="https://www.youtube.com/c/JavaAidTutorials?sub_confirmation=1">video tutorials</b></a>. If you are looking for anyone of these things -

hackerrank solutions java GitHub | hackerrank tutorial in java | hackerrank 30 days of code solutions | hackerrank algorithms solution | hackerrank cracking the coding interview solutions | hackerrank general programming solutions | hackerrank implementation solutions | hackerrank data structures solutions in java | hackerrank algorithm solution in java | hackerrank challenges solution | hackerrank practices solution | hackerrank coding challenges solutions | hackerrank questions | hackerrank problems | how to solve hackerrank practice problem in java | problem solving | coding interview | coding | programming | hackerrank interview preparation kit solution in java | problem solving with java | JAVAAID | hackerank solution | Kanahaiya Gupta

then you are at the right place. :)

<br/> <br/>

30 DAYS OF CODE

DayChallengeSolutionVideo Explaination
0Hello, WorldDay0HelloWorld.java
1Data TypesDay1DataTypes.java
2OperatorsDay2Operators.java
3Intro to Conditional StatementsDay3IntroToConditionalStatements.java
4Class vs. InstanceDay4ClassVsInstance.java
5LoopsDay5Loops.java
6Let's ReviewDay6LetsReview.java
7ArraysDay7Arrays.java
8Dictionaries and MapsDay8DictionariesAndMaps.java
9RecursionDay9Recursion.java
10Binary NumbersDay10BinaryNumbers.java
112D ArraysDay112DArrays.java
12InheritanceStudent.java
13Abstract ClassesMyBook.java
14ScopeDay14Scope.java
15Linked ListDay15LinkedList.java
16Exceptions - String to IntegerDay16ExceptionsStringToInteger.java
17MoreExceptionsDay17MoreExceptions.java
18QueuesAndStacksDay18QueuesAndStacks.java
19InterfacesDay19Interfaces.java
20SortingDay20Sorting.java
21GenericsDay21Generics.java
22BinarySearchTreesDay22BinarySearchTrees.java
23BSTLevelOrderTraversalDay23BSTLevelOrderTraversal.java
24MoreLinkedListsDay24MoreLinkedLists.java
25RunningTimeAndComplexityDay25RunningTimeAndComplexity.java
26Nested LogicDay26NestedLogic.java
27Day 27: TestingDay27Testing.java
28RegEx,Patterns,and Intro to DatabasesDay28RegExPatternsAndIntroToDatabases.java
29Bitwise ANDDay29BitwiseAND.java

JAVA

SubdomainChallengeSolutionVideo Explaination
IntroductionWelcome to Java!WelcomeToJava.java
IntroductionJava Stdin and Stdout IJavaStdinAndStdoutI.java
IntroductionJava If-ElseJavaIfElse.java
IntroductionJava Stdin and Stdout IIJavaStdinAndStdoutII.java
IntroductionJava Output FormattingJavaOutputFormatting.java
IntroductionJava Loops IJavaLoopsI.java
IntroductionJava Loops IIJavaLoopsII.java
IntroductionJava DatatypesJavaDatatypes.java
IntroductionJava End-of-fileJavaEndOfFile.java
IntroductionJava Static Initializer BlockJavaStaticInitializerBlock.java
IntroductionJava Int to StringJavaIntToString.java
IntroductionJava Date and TimeJavaDateAndTime.java
IntroductionJava Currency FormatterJavaCurrencyFormatter.java
StringsJava Strings IntroductionJavaStringsIntroduction.java
StringsJava SubstringJavaSubstring.java
StringsJava Substring ComparisonsJavaSubstringComparisons.java
StringsJava String ReverseJavaStringReverse.java
StringsJava AnagramsJavaAnagrams.java
StringsJava String TokensJavaStringTokens.java
StringsPattern Syntax CheckerPatternSyntaxChecker.java
StringsValid Username Regular ExpressionValidUsernameRegularExpression.java
StringsTag Content ExtractorTagContentExtractor.java
StringsJava RegexJavaRegex.java
StringsJava Regex 2 - Duplicate WordsJavaRegex2DuplicateWords.java
BigIntegerJava BigIntegerJavaBigInteger.java
BigIntegerJava BigDecimalJavaBigDecimal.java
BigIntegerJava Primality TestJavaPrimalityTest.java
Data StructuresJava 1D ArrayJava1DArray.java
Data StructuresJava 2D ArrayJava2DArray.java
Data StructuresJava SubarrayJavaSubarray.java
Data StructuresJava ArraylistJavaArraylist.java
Data StructuresJava MapJavaMap.java
Data StructuresJava HashsetJavaHashset.java
Data StructuresJava ComparatorJavaComparator.java
Data StructuresJava SortJavaSort.java
Data StructuresJava ListJavaList.java
Data StructuresJava GenericsJavaGenerics.java
Data StructuresJava StackJavaStack.java
Data StructuresJava DequeueJavaDequeue.java
Data StructuresJava BitSetJavaBitSet.java
Data StructuresJava Priority QueueJavaPriorityQueue.java
Data StructuresJava 1D Array (Part 2)Java1DArrayPart2.java
Object Oriented ProgrammingJava Inheritance IJavaInheritanceI.java
Object Oriented ProgrammingJava Inheritance IIJavaInheritanceII.java
Object Oriented ProgrammingJava Abstract ClassJavaAbstractClass.java
Object Oriented ProgrammingJava InterfaceJavaInterface.java
Object Oriented ProgrammingJava Method OverridingJavaMethodOverriding.java
Object Oriented ProgrammingJava Method Overriding 2(Super Keyword)JavaMethodOverriding2SuperKeyword.java
Object Oriented ProgrammingJava Instanceof keywordJavaInstanceofkeyword.java
Object Oriented ProgrammingJava IteratorJavaIterator.java
Exception HandlingJava Exception Handling (Try-catch)JavaExceptionHandlingTryCatch.java
Exception HandlingJava Exception HandlingJavaExceptionHandling.java
AdvancedJava Varargs - Simple AdditionJavaVarargsSimpleAddition.java
AdvancedJava Reflection - AttributesJavaReflectionAttributes.java
AdvancedCan You Access?CanYouAccess.java
AdvancedJava Factory PatternJavaFactoryPattern.java
AdvancedJava Singleton PatternJavaSingletonPattern.java
AdvancedCovariant Return TypesCovariantReturnTypes.java
AdvancedPrime CheckerPrimeChecker.java
AdvancedJava AnnotationsJavaAnnotations.java
AdvancedJava Lambda ExpressionsJavaLambdaExpressions.java
AdvancedJava MD5JavaMD5.java
AdvancedJava SHA-256JavaSHA256.java
AdvancedJava Visitor PatternJavaVisitorPattern.java

ALGORITHMS

SubdomainChallengeSolutionVideo Explaination
SortingQuicksort 1 - PartitionQuicksort1Partition.java
SortingMarc's CakewalkMarcsCakewalk.java
SortingMinimum Absolute Difference in an ArrayMinimumAbsoluteDifferenceInAnArray.java
SortingLuck BalanceLuckBalance.java
SortingClimbing the LeaderboardClimbingTheLeaderboard.javaTutorial
SortingBig SortingBigSorting.java
SortingInsertion Sort - Part 1InsertionSortPart1.java
SortingInsertion Sort - Part 2InsertionSortPart2.java
SortingCorrectness and the Loop InvariantCorrectnessAndTheLoopInvariant.java
SortingRunning Time of AlgorithmsRunningTimeOfAlgorithms.java
SortingCounting Sort 1CountingSort1.java
SortingCounting Sort 2CountingSort2.java
SortingCounting Sort 3CountingSort3.java
SortingIntro to Tutorial ChallengesIntroToTutorialChallenges.java
SortingFind the MedianFindTheMedian.java
SortingClosest NumbersClosestNumbers.java
SortingMark and ToysMarkAndToys.java
SortingJim and the OrdersJimAndTheOrders.java
searchLonely IntegerLonelyInteger.javaTutorial
searchBit Manipulation: Lonely IntegerBitManipulationLonelyInteger.javaTutorial
searchIce Cream ParlorIceCreamParlor.javaTutorial
searchHashTables: IceCreamParlorHashTablesIceCreamParlor.javaTutorial
searchMinimum LossMinimumLoss.java
searchSherlock and ArraySherlockAndArray.javaTutorial
Greedy AlgorithmsMarc's CakewalkMarcsCakewalk.java
Greedy AlgorithmsLuck BalanceLuckBalance.java
Greedy AlgorithmsEqual StacksEqualStacks.javaTutorial
Greedy AlgorithmsMark and ToysMarkAndToys.java
Greedy AlgorithmsJim and the OrdersJimAndTheOrders.java
Greedy AlgorithmsPriyanka and ToysPriyankaAndToys.java
Graph TheoryKruskal (MST): Really Special SubtreeKruskalMSTReallySpecialSubtree.java
Graph TheoryBreadth First Search: Shortest ReachBreadthFirstSearchShortestReach.java
Graph TheoryPrim's (MST) : Special SubtreePrimsMSTSpecialSubtree.java
StringsSuper Reduced StringSuperReducedString.java
StringsCaesar CipherCaesarCipher.java
StringsMars ExplorationMarsExploration.java
StringsCamelCaseCamelCase.java
StringsGemstonesGemstones.java
StringsThe Love-Letter MysteryTheLoveLetterMystery.java
StringsPangramsPangrams.java
StringsAlternating CharactersAlternatingCharacters.java
StringsBeautiful Binary StringBeautifulBinaryString.java
StringsBig SortingBigSorting.java
StringsAnagramAnagram.java
StringsTwo StringsTwoStrings.java
StringsFunny StringFunnyString.java
StringsString ConstructionStringConstruction.java
StringsStrings: Making AnagramsStringsMakingAnagrams.java
StringsMaking AnagramsMakingAnagrams.java
StringsCaesar Cipher: EncryptionCaesarCipherEncryption.java
StringsGame of Thrones - IGameOfThronesI.java
StringsSherlock and the Valid StringSherlockAndTheValidString.java
StringsSeparate the NumbersSeparateTheNumbers.javaTutorial
StringsPalindromeIndexPalindromeIndex.javaTutorial
StringsCommon ChildCommonChild.javaTutorial
RecursionRecursive Digit SumRecursiveDigitSum.java
Dynamic ProgrammingFibonacci ModifiedFibonacciModified.java
Dynamic ProgrammingThe Maximum SubarrayTheMaximumSubarray.java
Bit ManipulationLonely IntegerLonelyInteger.javaTutorial
Bit ManipulationBit Manipulation: Lonely IntegerBitManipulationLonelyInteger.javaTutorial
Bit ManipulationSum vs XORSumvsXOR.java
Bit ManipulationMaximizing XORMaximizingXOR.java
Bit ManipulationSansa and XORSansaAndXOR.java
Constructive AlgorithmsNew Year ChaosNewYearChaos.javaTutorial

CRACKING THE CODING INTERVIEW

TopicChallengeSolutionVideo Explaination
Techniques / ConceptsTime Complexity: PrimalityPrimality.java
Techniques / ConceptsRecursion: Fibonacci NumbersFibonacciNumber.java
Techniques / ConceptsRecursion: Davis' StaircaseDavisStaircase.java
Techniques / ConceptsBit Manipulation: Lonely IntegerLonelyInteger.javaTutorial
Techniques / ConceptsDP: Coin ChangeDPCoinChange.java
Data StructuresArrays: Left RotationLeftRotation.javaTutorial
Data StructuresStrings: Making AnagramsMakingAnagrams.java
Data StructuresHash Tables: Ransom NoteHashTablesRansomNote.java
Data StructuresLinked Lists: Detect a CycleDetectACycle.java
Data StructuresStacks: Balanced BracketsBalancedBrackets.java
Data StructuresTrees: Is This a Binary Search Tree?TreesIsThisABinarySearchTree.java
Data StructuresHeaps: Find the Running MedianHeapsFindTheRunningMedian.java
Data StructuresTries: ContactsTriesContacts.java
AlgorithmsSorting: Bubble SortSortingBubbleSort.java
AlgorithmsSorting: ComparatorSortingComparator.java
AlgorithmsHash Tables: Ice Cream ParlorHashTablesIceCreamParlor.java
AlgorithmsBFS: Shortest Reach in a GraphBFSShortestReachInAGraph.java

DATA STRUCTURES

SubdomainChallengeSolutionVideo Explaination
ArraysArrays - DSArraysDS.javaTutorial
Arrays2D Array - DSTwoDArrayDS.java
ArraysDynamic ArrayDynamicArray.javaTutorial
ArraysLeft RotationLeftRotation.javaTutorial
ArraysBig SortingBigSorting.java
ArraysSparse ArraysSparseArrays.javaTutorial
ArraysArray ManipulationArrayManipulation.javaTutorial
StacksMaximum ElementMaximumElement.javaTutorial
StacksBalanced BracketsBalancedBrackets.java
StacksEqual StacksEqualStacks.javaTutorial
StacksLargest RectangleLargestRectangle.java
StacksSimple Text EditorSimpleTextEditor.java
TreesPreorder TraversalPreorderTraversal.java
TreesInorder TraversalInorderTraversal.java
TreesPostorder TraversalPostorderTraversal.java
TreesHeight of a Binary TreeHeightOfABinaryTree.java
TreesLevel Order TraversalLevelOrderTraversal.java
TreesHuffman DecodingHuffmanDecoding.java
TreesTop ViewTopView.java
Linked ListPrint the Elements of a Linked ListPrintTheElementsOfALinkedList.java
Linked ListInsert a node at the head of a linked listInsertANodeAtHeadOfAList.java
Linked ListInsert a Node at the Tail of a Linked ListInsertANodeAtTheTailOfALinkedList.java
Linked ListInsert a node at a specific position in a linked listInsertANodeAtASpecificPositionInALinkedList.java
Linked ListDelete a NodeDeleteANode.java
Linked ListPrint in ReversePrintInReverse.java
Linked ListReverse a linked listReverseALinkedList.java
Linked ListCompare two linked listsCompareTwoLinkedLists.java
Linked ListMerge two sorted linked listsMergeTwoSortedLinkedLists.java
Linked ListGet Node ValueGetNodeValue.java
Linked ListDelete duplicate-value nodes from a sorted linked listDeleteDuplicateValueNodesFromASortedLinkedList.java
Linked ListCycle DetectionCycleDetection.java
Linked ListFind Merge Point of Two ListsFindMergePointOfTwoLists.java
Linked ListInserting a Node Into a Sorted Doubly Linked ListInsertingANodeIntoASortedDoublyLinkedList.java
Linked ListReverse a doubly linked listReverseADoublyLinkedList.java
TriesContactsContacts.java
TriesNo Prefix SetNoPrefixSet.java
QueuesQueue using Two StacksQueueUsingTwoStacks.java
HeapsQHEAP1QHEAP1.java
HeapsJesse and CookiesJesseAndCookies.java
HeapsFind the Running MedianFindTheRunningMedian.java
Disjoint SetMerging CommunitiesMergingCommunities.java
Disjoint SetComponents in a graphComponentsInAGraph.java

GENERAL PROGRAMMING

SubdomainChallengeSolutionVideo Explaination
Basic ProgrammingSolve Me FirstSolveMeFirst.javaTutorial
Basic ProgrammingStaircaseStaircase.javaTutorial
Basic ProgrammingPlus MinusPlusMinus.javaTutorial
Basic ProgrammingDiagonal DifferenceDiagonalDifference.javaTutorial
Basic ProgrammingA Very Big SumAVeryBigSum.javaTutorial
Basic ProgrammingSimple Array SumSimpleArraySum.javaTutorial
Basic ProgrammingCompare the TripletsCompareTheTriplets.javaTutorial
Basic ProgrammingDivisible Sum PairsDivisibleSumPairs.java
Basic ProgrammingKangarooKangaroo.javaTutorial
Basic ProgrammingDrawing BookDrawingBook.javaTutorial
Basic ProgrammingBirthday Cake CandlesBirthdayCakeCandles.javaTutorial
Basic ProgrammingBon AppétitBonAppétit.java
Basic ProgrammingSock MerchantSockMerchant.javaTutorial
Basic ProgrammingApple and OrangeAppleAndOrange.java
Basic ProgrammingBetween Two SetsBetweenTwoSets.java
Basic ProgrammingMini-Max SumMiniMaxSum.javaTutorial
Basic ProgrammingGrading StudentsGradingStudents.java
Basic ProgrammingBreaking the RecordsBreakingTheRecords.java
Basic ProgrammingMigratory BirdsMigratoryBirds.java
Basic ProgrammingBirthday ChocolateBirthdayChocolate.java
Basic ProgrammingTime ConversionTimeConversion.javaTutorial
Basic ProgrammingLibrary FineLibraryFine.java
Basic ProgrammingSave the Prisoner!SaveThePrisoner.javaTutorial
Basic ProgrammingJumping on the Clouds: RevisitedJumpingOnTheCloudsRevisited.java
Basic ProgrammingCounting ValleysCountingValleys.javaTutorial
Basic ProgrammingViral AdvertisingViralAdvertising.java
Basic ProgrammingBeautiful Days at the MoviesBeautifulDaysAtTheMovies.java
Basic ProgrammingElectronics ShopElectronicsShop.java
Basic ProgrammingCats and a MouseCatsAndAMouse.javaTutorial
Basic ProgrammingDay of the ProgrammerDayOfTheProgrammer.java
Basic ProgrammingThe Hurdle RaceTheHurdleRace.java
Basic ProgrammingUtopian TreeUtopianTree.javaTutorial
Basic ProgrammingService LaneServiceLane.java
Basic ProgrammingCircular Array RotationCircularArrayRotation.java
Basic ProgrammingSherlock and SquaresSherlockAndSquares.java
Basic ProgrammingAngry ProfessorAngryProfessor.javaTutorial
Basic ProgrammingExtra Long FactorialsExtraLongFactorials.java
Basic ProgrammingMinimum DistancesMinimumDistances.javaTutorial
Basic ProgrammingNon-Divisible SubsetNonDivisibleSubset.java
Basic ProgrammingBeautiful TripletsBeautifulTriplets.java
Basic ProgrammingJumping on the CloudsJumpingOnTheClouds.javaTutorial
Basic ProgrammingEqualize the ArrayEqualizeTheArray.javaTutorial
Basic ProgrammingDesigner PDF ViewerDesignerPDFViewer.java
Basic ProgrammingForming a Magic SquareFormingAMagicSquare.java
Basic ProgrammingRepeated StringRepeatedString.javaTutorial
Basic ProgrammingBitwise ANDBitwiseAND.java
Basic ProgrammingDivisible Pairs SumDivisiblePairsSum.java
Basic ProgrammingAppend and DeleteAppendAndDelete.java
Basic ProgrammingPicking NumbersPickingNumbers.javaTutorial
Basic ProgrammingClimbing the LeaderboardClimbingTheLeaderboard.javaTutorial
Basic ProgrammingSequence EquationSequenceEquation.java
Basic ProgrammingFind DigitsFindDigits.javaTutorial
Basic ProgrammingChocolate FeastChocolateFeast.java
Basic ProgrammingCut the sticksCutTheSticks.java
Basic ProgrammingACM ICPC TeamACMICPCTeam.javaTutorial
Basic ProgrammingTaum and B'dayTaumAndBday.java
Basic ProgrammingThe Time in WordsTheTimeInWords.java
Basic ProgrammingFlatland Space StationsFlatlandSpaceStations.java
Basic ProgrammingLisa's WorkbookLisasWorkbook.java
Basic ProgrammingFair RationsFairRations.java
Basic ProgrammingManasa and StonesManasaAndStones.java
Basic ProgrammingCavity MapCavityMap.java
Basic ProgrammingThe Grid SearchTheGridSearch.java
Basic ProgrammingHappy LadybugsHappyLadybugs.java
Basic ProgrammingStrange CounterStrangeCounter.java
Basic ProgrammingConsecutive 1's in Binary NumbersConsecutive1sInBinaryNumbers.javaTutorial
Basic ProgrammingBigger is GreaterBiggerIsGreater.javaTutorial

IMPLEMENTATION

SubdomainChallengeSolutionVideo Explaination
Brute ForceDay of the ProgrammerDayOfTheProgrammer.java
Brute ForcePangramsPangrams.java
Brute ForceClimbing the LeaderboardClimbingTheLeaderboard.javaTutorial
Brute ForceStrings: Making AnagramsStringsMakingAnagrams.java
Brute ForceEncryptionEncryption.java
Brute ForceMaking AnagramsMakingAnagrams.java

INTERVIEW PREPARATION KIT

SubdomainChallengeSolutionVideo Explaination
Dictionaries and HashmapsCount TripletsCountTriplets.javaTutorial
SearchTriple sumTripleSum.javaTutorial
String ManipulationCommon ChildCommonChild.javaTutorial

TOP 10 LEARNING RESOURCES

1) Cracking the Coding Interview

2) Algorithms Hardcover

3) The Algorithm Design Manual

4) Data Structures & Algorithms in Java

5) Data Structures and Algorithms Made Easy

6) Grokking Algorithms

7) Dynamic Programming for Coding Interviews

8) Introduction to Algorithms

9) Elements of Programming Interviews in Java

10) Programming Interviews Exposed

DISCLAIMER: This above mentioned resources have affiliate links, which means if you buy one of the product from my links, I’ll receive a small commission. This helps support the channel and allows us to continue to add more tutorial. Thank you for the support!

*NOTE: All above shared learning resources are best of my knowledge as I have personally read all except one Introduction to Algorithms.