├── .circleci └── config.yml ├── .codebeatignore ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ └── custom.md ├── pull_request_template.md └── workflows │ ├── codeql-analysis.yml │ ├── linter.yml │ ├── main.yml │ └── ossar-analysis.yml ├── .gitignore ├── .gitmodules ├── .markdownlint.json ├── .nvmrc ├── .python-version ├── .travis.yml ├── .vscode ├── configurationCache.log ├── dryrun.log ├── extensions.json ├── launch.json ├── settings.json ├── targets.log └── tasks.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── Makefile ├── README.md ├── appveyor.yml ├── azure-pipelines.yml ├── build.gradle ├── documentation ├── development │ ├── ci-cd.md │ ├── design-architecture.md │ ├── requirements.md │ └── testing.md ├── product │ ├── installation.md │ └── usage.md └── project │ └── metadata.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── learning-computer-science.sln ├── metadata.json ├── renovate.json ├── requirements.txt ├── resources └── images │ └── logo │ ├── Logo LCS color │ ├── logo LCS color high res.png │ ├── logo LCS color low res.png │ ├── logo LCS color.ai │ ├── logo LCS color.eps │ ├── logo LCS color.psd │ └── logo LCS color.svg │ ├── button LCS black │ ├── button LCS black high res.png │ ├── button LCS black low res.png │ ├── button LCS black.ai │ ├── button LCS black.eps │ ├── button LCS black.psd │ └── button LCS black.svg │ ├── button LCS color │ ├── button LCS color2-01 (1).eps │ ├── button LCS color2-01 (1).png │ └── old │ │ ├── button LCS color high res.png │ │ ├── button LCS color low res.png │ │ ├── button LCS color.ai │ │ ├── button LCS color.eps │ │ ├── button LCS color.psd │ │ └── button LCS color.svg │ ├── icon LCS black │ ├── icon LCS black high res.png │ ├── icon LCS black low res.png │ ├── icon LCS black.ai │ ├── icon LCS black.eps │ ├── icon LCS black.psd │ └── icon LCS black.svg │ ├── icon LCS color │ ├── icon LCS color high res.png │ ├── icon LCS color low res.png │ ├── icon LCS color.ai │ ├── icon LCS color.eps │ ├── icon LCS color.psd │ └── icon LCS color.svg │ ├── icon LCS line │ ├── icon LCS line high res.png │ ├── icon LCS line low res.png │ ├── icon LCS line.ai │ ├── icon LCS line.eps │ ├── icon LCS line.psd │ └── icon LCS line.svg │ ├── logo LCS black │ ├── logo LCS black high res.png │ ├── logo LCS black low res.png │ ├── logo LCS black.ai │ ├── logo LCS black.eps │ ├── logo LCS black.psd │ └── logo LCS black.svg │ └── logo LCS line │ ├── logo LCS line high res.png │ ├── logo LCS line low res.png │ ├── logo LCS line.ai │ ├── logo LCS line.eps │ ├── logo LCS line.psd │ └── logo LCS line.svg ├── scripts ├── get_problems_count.py ├── python-requirements.txt ├── run_unit_tests.py ├── run_xunit_tests.py └── setup.py └── src ├── AlgoExpert └── .gitkeep ├── ByteByByte ├── readme.md └── src │ └── CodingInterviewQuestions │ └── Array │ ├── P1_MedianOfArrays │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ └── P2_01Knapsack │ ├── Java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── CareerCup └── src │ └── .gitkeep ├── CodeChef └── src │ └── .gitkeep ├── CodeFights └── src │ └── .gitkeep ├── CodeForces └── src │ └── .gitkeep ├── CodeGolfIo └── src │ └── .gitkeep ├── CodeWars └── src │ └── .gitkeep ├── CoderByte └── src │ └── .gitkeep ├── Codility └── src │ └── .gitkeep ├── Coursera └── src │ └── .gitkeep ├── CrackingTheCodingInterview ├── _misc │ ├── Gayle_McDowell_CareerCup_Sample_Resume.doc │ ├── McDowell_CV_Template.tex │ ├── cracking_the_coding_skills_-_v6.pdf │ ├── cracking_the_pm_skills_-_v6.pdf │ └── cracking_the_soft_skills_-_v6.pdf └── src │ └── Book │ ├── Helper │ ├── BTreePrinter │ │ ├── Java │ │ │ └── BTreePrinter.java │ │ ├── metadata.json │ │ └── readme.md │ ├── LinkedListNode │ │ ├── Java │ │ │ └── LinkedListNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── TreeNode │ │ ├── Java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Trie │ │ ├── Java │ │ │ └── Trie.java │ │ ├── metadata.json │ │ └── readme.md │ ├── TrieNode │ │ ├── Java │ │ │ └── TrieNode.java │ │ ├── metadata.json │ │ └── readme.md │ └── Utility │ │ └── Java │ │ └── Utility.java │ └── IX_InterviewQuestions │ └── DataStructures │ ├── Ch01_ArraysAndStrings │ ├── Q0_Introduction │ │ ├── ArrayList │ │ │ ├── Java │ │ │ │ └── ArrayList.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── HashTable │ │ │ ├── Java │ │ │ │ └── HashTable.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── StringBuilder │ │ │ ├── Java │ │ │ └── StringBuilder.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Q1_IsUnique │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q2_CheckPermutation │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q3_URLify │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── Q4_PalindromePermutation │ │ ├── Java │ │ ├── Common.java │ │ ├── Solution1.java │ │ ├── Solution1Test.java │ │ ├── Solution2.java │ │ ├── Solution2Test.java │ │ ├── Solution3.java │ │ └── Solution3Test.java │ │ ├── metadata.json │ │ └── readme.md │ └── Ch02_LinkedLists │ ├── Python │ └── LinkedList.py │ ├── metadata.json │ └── readme.md ├── CsAcademy └── src │ └── .gitkeep ├── DailyCodingProblem └── src │ ├── P1_P100 │ ├── P1_TwoSum │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P2_ProductOfArrayExceptSelf │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P3_SerializeAndDeserializeBinaryTree │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P4_FirstMissingPositive │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P5_FirstAndLastElementOfPair │ │ ├── Java │ │ ├── Solution.java │ │ ├── SolutionTest.java │ │ └── cons.java │ │ ├── metadata.json │ │ └── readme.md │ └── P201_300 │ └── P205_NextPermutationOfIntegerInAbsoluteOrder │ ├── Java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── DailyInterviewPro └── src │ └── P1_P100 │ ├── P1_AddTwoNumbersAsALinkedList │ ├── Java │ │ ├── ListNode.java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── P2_LongestSubstringWithoutRepeatingCharacters │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── P3_LongestPalindromicSubstring │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ └── P4_ValidateBalancedParentheses │ ├── Java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── DesignGurus └── misc.md ├── EducativeIo └── Courses │ ├── CoderustHackingTheCodingInterview │ └── .gitkeep │ └── GrokkingTheSystemDesignInterview │ ├── 01-SystemDesignBasics │ ├── Caching │ │ └── readme.md │ ├── CapTheorem │ │ └── readme.md │ ├── ConsistentHashing │ │ └── readme.md │ ├── Indexes │ │ └── readme.md │ ├── KeyCharacteristicsOfDistributedSystems │ │ └── readme.md │ ├── LoadBalancing │ │ └── readme.md │ ├── LongPolling_WebSockets_ServerSentEvents │ │ └── readme.md │ ├── Proxies │ │ └── readme.md │ ├── Queues │ │ └── readme.md │ ├── RedundancyAndReplication │ │ └── readme.md │ ├── ShardingOrDataPartitioning │ │ └── readme.md │ ├── SqlVsNoSql │ │ └── readme.md │ ├── SystemDesignBasics │ │ └── readme.md │ ├── WhySystemDesignInterviews │ │ └── readme.md │ └── readme.md │ ├── 02-SystemDesignProblems │ ├── 01-SystemDesignInterviews_AStepByStepGuide │ │ └── readme.md │ ├── AdditionalResources │ │ └── readmd.md │ ├── ApiRateLimiter │ │ ├── images │ │ │ ├── api-rate-limiter-window_base64.md │ │ │ ├── fixed-window-algorithm_base64.md │ │ │ ├── fixed-window-atomicity_base64.md │ │ │ ├── fixed-window-problem_base64.md │ │ │ ├── high-level-design_base64.md │ │ │ ├── sliding-window-counters-example_base64.md │ │ │ └── sliding-window-example_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── Dropbox │ │ ├── images │ │ │ ├── client_base64.md │ │ │ ├── detailed-component-design_base64.md │ │ │ ├── high-level-design_base64.md │ │ │ └── message-queuing_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── FacebookMessenger │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ ├── high-level-design_base64.md │ │ │ └── workflow_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── FacebookNewsfeed │ │ ├── images │ │ │ └── high-level-diagram_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── FurtherReading │ │ └── readme.md │ ├── Instagram │ │ ├── images │ │ │ ├── component-design_base64.md │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── Pastebin │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── Ticketmaster │ │ ├── images │ │ │ ├── data-modeling_base64.md │ │ │ ├── high-level-design_base64.md │ │ │ └── ticket-booking-workflow_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── Twitter │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── TwitterSearch │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── TypeaheadSuggestion │ │ ├── images │ │ │ ├── trie-data-structure_base64.md │ │ │ ├── trie-merged-nodes_base64.md │ │ │ └── trie-storage-example_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── URLShorteningServiceLikeTinyURL │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ ├── high-level-system-design_base64.md │ │ │ ├── request-flow-for-accessing-shortened-url_base64.md │ │ │ └── request-flow-for-shortening-of-a-url_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── UberBackend │ │ ├── images │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── WebCrawler │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── YelpOrNearlyFriends │ │ ├── images │ │ │ ├── 2d-grid_base64.md │ │ │ ├── high-level-design_base64.md │ │ │ └── quadtree_base64.md │ │ ├── metadata.json │ │ └── readme.md │ ├── YoutubeOrNetflix │ │ ├── images │ │ │ ├── detailed-component-design_base64.md │ │ │ └── high-level-design_base64.md │ │ ├── metadata.json │ │ └── readme.md │ └── readme.md │ └── metadata.json ├── ElementsOfProgrammingInterviews └── src │ └── Book │ ├── C5_PrimitiveTypes │ ├── Q0_BootCamp │ │ ├── Java │ │ │ └── CountBits.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q1_ComputeParityOfWord │ │ ├── Java │ │ │ ├── Parity1.java │ │ │ ├── Parity2.java │ │ │ ├── Parity3.java │ │ │ └── Parity4.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q2_SwapBits │ │ ├── Java │ │ │ └── SwapBits.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q3_ReverseBits │ │ ├── Java │ │ │ └── ReverseBits.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q4_FindClosestIntWithSameWeight │ │ ├── Java │ │ │ └── ClosestIntSameBits.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q5_MultiplyWithoutArithmeticalOperators │ │ ├── Java │ │ │ └── MultiplyShiftAdd.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q6_ComputeDivision │ │ ├── Java │ │ │ └── Division.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q7_ComputePower │ │ ├── Java │ │ │ └── PowerXY.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Q8_ReverseDigits │ │ ├── Java │ │ │ └── ReverseInteger.java │ │ ├── metadata.json │ │ └── readme.md │ └── Q9_DecimalIntegerPalindromeCheck │ │ ├── Java │ │ └── PalindromeNumber.java │ │ ├── metadata.json │ │ └── readme.md │ └── C6_Arrays │ ├── ComputingAnAlternation │ ├── Java │ │ └── Rearrange.java │ ├── metadata.json │ └── readme.md │ ├── Q0_BootCamp │ ├── Java │ │ └── EvenOddArray.java │ ├── Python │ │ └── EvenOddArray.py │ ├── metadata.json │ └── readme.md │ ├── Q10_ComputeTheNextPermutation │ ├── Java │ │ └── NextPermutation.java │ ├── Variants │ │ ├── PreviousPermutation │ │ │ ├── Java │ │ │ │ └── PreviousPermutation.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── kthPermutation │ │ │ ├── Java │ │ │ └── kthPermutation.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── metadata.json │ └── readme.md │ ├── Q11_SampleOfflineData │ ├── Java │ │ └── OfflineSampling.java │ ├── metadata.json │ └── readme.md │ ├── Q12_SampleOnlineData │ ├── Java │ │ └── ReservoirSampling.java │ ├── metadata.json │ └── readme.md │ ├── Q13_ComputeRandomPermutation │ ├── Java │ │ └── ComputeRandomPermutation.java │ ├── metadata.json │ └── readme.md │ ├── Q14_ComputeRandomSubset │ ├── Java │ │ └── OnlineSampling.java │ ├── metadata.json │ └── readme.md │ ├── Q1_DutchNationalFlag │ ├── Java │ │ ├── DutchNationalFlag.java │ │ ├── DutchNationalFlagSlowInplace.java │ │ └── DutchNationalFlagTwoPasses.java │ ├── metadata.json │ └── readme.md │ ├── Q2_IncrementAnArbitraryPrecisionInteger │ ├── Java │ │ └── PlusOne.java │ ├── metadata.json │ └── readme.md │ ├── Q3_MultiplyTwoArbitraryPrecisionIntegers │ ├── Java │ │ └── BigNumberMultiplication.java │ ├── metadata.json │ └── readme.md │ ├── Q4_AdvancingThroughAnArray │ ├── Java │ │ └── JumpGame.java │ ├── Variants │ │ └── MinNumberOfSteps │ │ │ ├── Java │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── metadata.json │ └── readme.md │ ├── Q5_DeleteDuplicatesFromSortedArray │ ├── Java │ │ └── RemoveDuplicatesFromSortedArray.java │ ├── Variants │ │ └── LimitDuplicates │ │ │ ├── Java │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── metadata.json │ └── readme.md │ ├── Q6_BuyAndSellStockOnce │ ├── Java │ │ └── BuyAndSellStock.java │ ├── metadata.json │ └── readme.md │ ├── Q7_BuyAndSellStockTwice │ ├── Java │ │ └── BuyAndSellStockTwice.java │ ├── metadata.json │ └── readme.md │ ├── Q8_EnumerateAllPrimesToN │ ├── Java │ │ ├── PrimeSieve.java │ │ └── PrimeSieveBasic.java │ ├── metadata.json │ └── readme.md │ └── Q9_PermuteElementsOfArray │ ├── Java │ ├── PermutationArray1.java │ └── PermutationArray2.java │ ├── metadata.json │ └── readme.md ├── Exercism └── src │ └── .gitkeep ├── ExpertMitra └── BootCamp │ └── .gitkeep ├── Firecode └── src │ └── Problems │ └── Level1 │ ├── BinarySearchOnArrayOfIntegers │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── FindFirstNonDuplicateCharacterInAString │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── FlipIt │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── PalindromeTester │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── RepeatedElementsInAnArray │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ └── ReverseAString │ ├── Java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── FreeCodeCamp └── src │ └── Curriculum │ └── CodingInterviewPrep │ └── Algorithms │ └── .gitkeep ├── GeeksForGeeks └── src │ ├── Algorithms │ └── .gitkeep │ ├── DataStructures │ └── .gitkeep │ └── DataStructuresAndAlgorithms │ └── Graph │ └── GraphCycle │ ├── DetectCycleInADirectedGraph │ └── .gitkeep │ ├── DetectCycleInAnUndirectedGraph │ └── .gitkeep │ └── DisjointSetOrUnionFind_Set1 │ └── .gitkeep ├── GitHubRepository ├── BillRyan │ └── src │ │ └── AlgorithmExercise │ │ └── Part1_Basics │ │ └── BasicDataStructure │ │ ├── BinaryTree │ │ ├── Java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ │ └── LinkedList │ │ ├── Java │ │ ├── DListNode.java │ │ ├── ListNode.java │ │ └── Reverse.java │ │ ├── metadata.json │ │ └── readme.md ├── JerAguilon │ └── src │ │ └── TechnicalInterviewCodeSnippets │ │ └── .gitkeep ├── YangshunTay │ └── src │ │ └── TechInterviewHandbook │ │ └── .gitkeep ├── checkcheckzz │ └── system-design-interview │ │ ├── 01_SystemDesignInterviewTips │ │ └── readme.md │ │ ├── 02_BasicKnowledgeAboutSystemDesign │ │ ├── FallaciesOfDistributedSystems │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── HowToRockASystemsDesignInterview │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── IntroductionToArchitectingSystemsForScale │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── NumbersEveryoneShouldKnow │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ScalabilityForDummies │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ScalableSystemDesignPatterns │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ScalableWebArchitectureAndDistributedSystems │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── metadata.json │ │ └── readme.md ├── knaidu │ └── src │ │ └── problem-solving │ │ └── .gitkeep └── mission-peace │ └── src │ └── interview │ └── .gitkeep ├── Glassdoor └── src │ └── Facebook │ └── NumberOfStringsFromEncodedAlphabet │ ├── Python │ ├── solution.py │ └── test_solution.py │ ├── metadata.json │ └── readme.md ├── GoogleCodingCompetitions └── src │ ├── .gitkeep │ ├── codejam │ └── .gitkeep │ ├── hashcode │ └── .gitkeep │ └── kickstart │ └── .gitkeep ├── GoogleTechDevGuide └── .gitkeep ├── HackerEarth └── src │ └── .gitkeep ├── HackerRank └── src │ ├── Contests │ └── RookieRank2 │ │ ├── HackerRankInAString │ │ ├── Java │ │ │ └── Solution.java │ │ ├── metadata.json │ │ └── readme.md │ │ ├── KnightLOnAChessboard │ │ ├── Java │ │ │ └── Solution.java │ │ ├── metadata.json │ │ └── readme.md │ │ ├── MigratoryBirds │ │ ├── Java │ │ │ └── Solution.java │ │ ├── metadata.json │ │ └── readme.md │ │ └── MinimumAbsoluteDifferenceInAnArray │ │ ├── Java │ │ ├── Solution.java │ │ └── Solution_unoptimized.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Miscellaneous │ └── DamDesign │ │ ├── Python │ │ ├── solution.py │ │ └── test_solution.py │ │ ├── metadata.json │ │ └── readme.md │ └── Tracks │ ├── InterviewPreparationKit │ └── .gitkeep │ ├── ProblemSolving │ ├── Algorithms │ │ ├── Implementation │ │ │ └── DivisibleSumPairs │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Warmup │ │ │ ├── AVeryBigSum │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── CircularArrayRotation │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── CompareTheTriplets │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── DiagonalDifference │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── PlusMinus │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── SimpleArraySum │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── SolveMeFirst │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── Staircase │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ └── TimeConversion │ │ │ ├── Java │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ └── DataStructures │ │ ├── Arrays │ │ ├── Arrays_DS │ │ │ ├── Java │ │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── TwoDArray_DS │ │ │ ├── Java │ │ │ └── Solution.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── LinkedLists │ │ └── ReverseALinkedList │ │ ├── Java │ │ ├── Node.java │ │ └── Solution.java │ │ ├── metadata.json │ │ └── readme.md │ └── Tutorials │ └── ThirtyDaysOfCode │ ├── D0_HelloWorld │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D10_BinaryNumbers │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D11_2DArrays │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D12_Inheritance │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D13_AbstractClasses │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D14_Scope │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D15_LinkedList │ ├── Java │ │ ├── Node.java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D16_Exceptions_StringToInteger │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D17_MoreExceptions │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D18_QueuesAndStacks │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D19_Interfaces │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D1_DataTypes │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D20_Sorting │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D21_Generics │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D22_BinarySearchTrees │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D23_BSTLevelOrderTraversal │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D24_MoreLinkedLists │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D25_RunningTimeAndComplexity │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D26_NestedLogic │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D27_Testing │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D28_RegExPatternsAndIntroToDatabases │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D29_BitwiseAND │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D2_Operators │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D3_IntroToConditionalStatements │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D4_ClassVsInstance │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D5_Loops │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D6_LetsReview │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D7_Arrays │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ ├── D8_DictionariesAndMaps │ ├── Java │ │ └── Solution.java │ ├── metadata.json │ └── readme.md │ └── D9_Recursion │ ├── Java │ └── Solution.java │ ├── metadata.json │ └── readme.md ├── HiredInTech ├── Courses │ ├── AlgorithmDesign │ │ ├── 2-AlgorithmDesignCanvas │ │ │ ├── 2-WhatIsTheCanvas │ │ │ │ └── the-algorithm-design-canvas.pdf │ │ │ └── 3-TaskConstraints │ │ │ │ └── the-common-constraints-handout.pdf │ │ └── Introduction │ │ │ └── TestPracticeTask_a-plus-b │ └── SystemDesign │ │ └── readme.md └── src │ └── .gitkeep ├── InterviewBit └── src │ └── Courses │ ├── Programming │ ├── Level1_TimeComplexity │ │ └── Problems │ │ │ ├── AmortizedComplexity │ │ │ └── amortized1 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── BasicPrimer │ │ │ ├── choose4 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── loop_cmpl │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── nested_cmpl │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── nested_cmpl2 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── CompareFunctions │ │ │ ├── choose1 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── choose2 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── choose3 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── FunctionCallingItself │ │ │ ├── rec_cmpl1 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── rec_cmpl2 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── rec_cmpl3 │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Math │ │ │ ├── gcd_cmpl │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── loop_cmpl2 │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── nested_cmpl3 │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ └── while_cmpl │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level2_Arrays │ │ ├── Examples │ │ │ └── SpiralOrderMatrix1 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── Primers │ │ │ ├── ArrayBug │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Array_2D │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Array_impl1 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── Problems │ │ │ ├── Arrangement │ │ │ │ ├── LargestNumber │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── RotateMatrix │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── ArrayMath │ │ │ │ ├── AddOneToNumber │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── MinStepsInInfiniteGrid │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── Bucketing │ │ │ │ └── NobleInteger │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── BucketingOrSorting │ │ │ │ └── WaveArray │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── MissingOrRepeatedNumber │ │ │ │ └── FirstMissingInteger │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── SimulationArray │ │ │ │ ├── MaxNonNegativeSubArray │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── SpiralOrderMatrix2 │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── SpaceRecycle │ │ │ │ └── SetMatrixZeros │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ └── ValueRanges │ │ │ │ └── MergeIntervals │ │ │ │ ├── Java │ │ │ │ ├── Interval.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── SortingAlgorithms │ │ │ ├── BubbleSort │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── InsertionSort │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── MergeSort │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── QuickSort │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ └── SelectionSort │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level2_Math │ │ ├── Examples │ │ │ ├── AllFactors │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── BinaryRepresentation │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── PrimeNumbers │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── VerifyPrime │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── Primers │ │ │ ├── Math_Bug01 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Math_Bug02 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Problems │ │ │ ├── AdHoc │ │ │ ├── PrimeSum │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── SumOfPairwiseHammingDistance │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ArrayDp │ │ │ └── NumbersOfLengthNAndValuesLessThanK │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── BaseConversion │ │ │ └── ExcelColumnTitle │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Combinatorics │ │ │ └── GridUniquePaths │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── DigitOp │ │ │ ├── PalindromeInteger │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ReverseInteger │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── NumberEncoding │ │ │ └── RearrangeArray │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── NumberTheory │ │ │ ├── GreatestCommonDivisor │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ ├── SortedPermutationRankWithRepeats │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ └── TrailingZerosInFactorial │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level3_BinarySearch │ │ ├── Examples │ │ │ ├── FindElementOccurrence │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── RotatedArray │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Problems │ │ │ ├── SearchAnswer │ │ │ └── SquareRootOfInteger │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SearchStepSimulation │ │ │ └── ImplementPowerFunction │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SimpleBinarySearch │ │ │ └── SearchForARange │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── SortModification │ │ │ ├── MedianOfArray │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ │ └── RotatedSortedArraySearch │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level3_BitManipulation │ │ └── Problems │ │ │ ├── BitArray │ │ │ └── SingleNumber2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── BitPlay │ │ │ └── DifferentBitsSumPairwise │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Bucketing │ │ │ └── MinXorValue │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level3_Strings │ │ └── Problems │ │ │ ├── PrettyPrint │ │ │ └── JustifiedText │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StringMath │ │ │ ├── AddBinaryStrings │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── IntegerToRoman │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MultiplyStrings │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── RomanToInteger │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StringParsing │ │ │ └── Atoi │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StringSearch │ │ │ └── ImplementStrStr │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StringSimulation │ │ │ ├── CountAndSay │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── LongestCommonPrefix │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── PalindromeString │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StringTricks │ │ │ └── LongestPalindromicSubstring │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Words │ │ │ └── ReverseTheString │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level3_TwoPointers │ │ └── Problems │ │ │ ├── InplaceUpdate │ │ │ └── RemoveDuplicatesFromSortedArray │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MultipleArrays │ │ │ └── IntersectionOfSortedArrays │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Sorting │ │ │ └── ThreeSum │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Tricks │ │ │ └── ContainerWithMostWater │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── TwoPointer │ │ │ └── MinimizeAbsoluteDifference │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level4_LinkedLists │ │ ├── Examples │ │ │ ├── IntersectionOfLinkedLists │ │ │ │ ├── Java │ │ │ │ │ ├── ListNode.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ReverseLinkedList │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Problems │ │ │ ├── List2Pointer │ │ │ └── ReverseLinkList2 │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ListCycle │ │ │ └── ListCycle │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ListMath │ │ │ └── AddTwoNumbersAsLists │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ListSort │ │ │ └── InsertionSortList │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ListTrick │ │ │ └── .gitkeep │ │ │ └── PointerMove │ │ │ └── ReorderList │ │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level4_StacksAndQueues │ │ ├── Examples │ │ │ ├── GenerateAllParentheses │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ReverseString │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Problems │ │ │ ├── CleverStack │ │ │ └── LargestRectangleInHistogram │ │ │ │ ├── 1.png │ │ │ │ ├── 2.png │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MultipleStack │ │ │ └── MinStack │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StackMath │ │ │ └── EvaluateExpression │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── StackSimple │ │ │ └── RedundantBraces │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level5_Backtracking │ │ ├── Examples │ │ │ ├── ModularExpression │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ReverseLinkedListRecursion │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── Problems │ │ │ ├── BruteForceBuilder │ │ │ └── PalindromePartitioning │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── GameSolving │ │ │ └── NQueens │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MathsAndBacktracking │ │ │ └── KthPermutationSequence │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Permutations │ │ │ └── Permutations │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── PrunedBuilder │ │ │ └── GenerateAllParentheses2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Subsets │ │ │ └── CombinationSum │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level5_Hashing │ │ └── Problems │ │ │ ├── HashSearch │ │ │ ├── FourSum │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── TwoSum │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── HashingTwoPointer │ │ │ └── WindowString │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── Python │ │ │ │ ├── solution.py │ │ │ │ └── test_solution.py │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── IncrementalHash │ │ │ └── SubstringConcatenation │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── KeyFormation │ │ │ └── Equal │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── Python │ │ │ │ ├── solution.py │ │ │ │ └── test_solution.py │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── MathsAndHashing │ │ │ └── PointsOnTheStraightLine │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level6_HeapsAndMaps │ │ └── Problems │ │ │ ├── Heap │ │ │ └── MergeKSortedLists │ │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Heapmap │ │ │ └── LruCache │ │ │ │ ├── Java │ │ │ │ ├── Node.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Math │ │ │ └── WaysToFormMaxHeap │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level6_Trees │ │ ├── Examples │ │ │ ├── NextGreaterNumberBst │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ValidBinarySearchTree │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── Problems │ │ │ ├── BstTraversal │ │ │ │ ├── BstIterator │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ ├── KthSmallestElementInTree │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ ├── RecoverBinarySearchTree │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── TwoSumBinaryTree │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── InPlaceChange │ │ │ │ └── InvertTheBinaryTree │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── IntervalTree │ │ │ │ └── OrderOfPeopleHeights │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── LevelOrder │ │ │ │ └── ZigZagLevelOrderTraversalBt │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── LinkedListTree │ │ │ │ └── FlattenBinaryTreeToLinkedList │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── RootToLeaf │ │ │ │ └── RootToLeafPathsWithSum │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── SimpleTreeOps │ │ │ │ └── BalancedBinaryTree │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── Traversal │ │ │ │ ├── InOrderTraversal │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ ├── PostOrderTraversal │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ ├── PreOrderTraversal │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── VerticalOrderTraversalOfBinaryTree │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── img1.png │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── TreeConstruction │ │ │ │ ├── BinaryTreeFromInorderAndPostorder │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ ├── ConstructBinaryTreeFromInorderAndPreorder │ │ │ │ │ ├── Java │ │ │ │ │ │ ├── Solution.java │ │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ │ └── SortedArrayToBalancedBst │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── TreeSearch │ │ │ │ └── LeastCommonAncestor │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── Trie │ │ │ │ └── ShortestUniquePrefix │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ ├── Tries │ │ │ │ └── HotelReviews │ │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TrieNode.java │ │ │ │ │ ├── metadata.json │ │ │ │ │ └── readme.md │ │ │ └── TwoTrees │ │ │ │ ├── IdenticalBinaryTrees │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ │ └── SymmetricBinaryTree │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── readme.md │ ├── Level7_DynamicProgramming │ │ ├── AdHoc │ │ │ └── BestTimeToBuyAndSellStock2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── BreakingWords │ │ │ └── PalindromePartitioning2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── DerivedDp │ │ │ └── MaxSumWithoutAdjacentElements │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── DpOptimizedBacktrack │ │ │ └── WordBreak2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── DpTricky │ │ │ ├── BestTimeToBuyAndSellStocks3 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── ShortestCommonSuperString │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── GreedyOrDp │ │ │ └── MinJumpsArray │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── Knapsack │ │ │ └── EqualAveragePartition │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── MatrixDp │ │ │ └── UniquePathsInAGrid │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── MultiplyDp │ │ │ └── UniqueBinarySearchTrees2 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── PreProcessDp │ │ │ └── MaxRectangleInBinaryMatrix │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── SimpleArrayDp │ │ │ ├── LengthOfLongestSubsequence │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── WaysToDecode │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── SuffixPrefixDp │ │ │ └── BestTimeToBuyAndSellStocks1 │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── TreeDp │ │ │ └── MaxSumPathInBinaryTree │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ └── TwoDStringDp │ │ │ └── EditDistance │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ ├── Level7_Greedy │ │ └── Problems │ │ │ ├── Bucket1 │ │ │ ├── AssignMiceToHoles │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── DistributeCandy │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Bucket2 │ │ │ └── GasStation │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Bucket3 │ │ │ └── MajorityElement │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Bucket4 │ │ │ └── Seats │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── Bucket5 │ │ │ └── HighestProduct │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── Bucket6 │ │ │ └── Bulbs │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ └── Level8_Graphs │ │ └── Problems │ │ ├── Bfs │ │ └── LevelOrder │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── DepthFirstSearch │ │ └── LargestDistanceBetweenNodesOfATree │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── GraphAdHoc │ │ └── ConvertSortedListToBinarySearchTree │ │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── GraphConnectivity │ │ └── CaptureRegionsOnBoard │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── GraphHashing │ │ └── CloneGraph │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── UndirectedGraphNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── GraphTraversal │ │ └── WordSearchBoard │ │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── ShortestPath │ │ ├── WordLadder1 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── WordNode.java │ │ ├── metadata.json │ │ └── readme.md │ │ └── WordLadder2 │ │ ├── Java │ │ ├── Solution.java │ │ ├── SolutionTest.java │ │ └── WordNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── Puzzles │ └── .gitkeep │ └── SystemDesign │ └── Level1_StorageScalability │ └── .gitkeep ├── InterviewCake └── src │ └── Questions │ ├── BracketValidator │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── KthToLastNodeInSinglyLinkedList │ ├── Java │ │ ├── LinkedListNode.java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ ├── MergeSortedArrays │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md │ └── SecondLargestItemInBst │ ├── Java │ ├── BinaryTreeNode.java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── InterviewingIo └── src │ ├── DataStructuresAlgorithmsCoding │ └── .gitkeep │ └── SystemsDesign │ └── GoogleMaps │ ├── metadata.json │ └── readme.md ├── Kattis └── .gitkeep ├── KhanAcademy └── src │ └── .gitkeep ├── LeetCode └── src │ ├── Discuss │ └── .gitkeep │ ├── Explore │ └── Interview │ │ ├── GoogleInterview │ │ ├── ArraysAndStrings │ │ │ ├── AddBoldTagInString │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── FirstMissingPositive │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── FirstUniqueCharacterInAString │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── GameOfLife │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ImageSmoother │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── IntersectionOfTwoArrays │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── LongestSubstringWithAtMostKDistinctCharacters │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MaxConsecutiveOnes │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MaxConsecutiveOnes2 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MoveZeroes │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── OneEditDistance │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── PlusOne │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ReadNCharactersGivenRead4 │ │ │ │ ├── Java │ │ │ │ │ ├── Reader4.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ReadNCharactersGivenRead4_2_CallMultipleTimes │ │ │ │ ├── Java │ │ │ │ │ ├── Reader4.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── RemoveDuplicatesFromSortedArray │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ShortestPalindrome │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SpiralMatrix │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── TrappingRainWater │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ValidNumber │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ValidPalindrome │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ValidParentheses │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── Design │ │ │ ├── BinarySearchTreeIterator │ │ │ │ ├── Java │ │ │ │ │ ├── BstIterator.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── DesignTicTacToe │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TicTacToe.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MovingAverageFromDataStream │ │ │ │ ├── Java │ │ │ │ │ ├── MovingAverage.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── PeekingIterator │ │ │ │ ├── Java │ │ │ │ │ ├── PeekingIterator.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── RangeSumQuery2DMutable │ │ │ │ ├── Java │ │ │ │ │ ├── NumMatrix.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ZigzagIterator │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ ├── ZigzagIterator.java │ │ │ │ │ └── ZigzagIteratorTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── DynamicProgramming │ │ │ ├── DecodeWays │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── EditDistance │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── HouseRobber2 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MaximumVacationDays │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MinimumPathSum │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SentenceScreenFitting │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── WordBreak │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── InterviewProcess │ │ │ ├── KEmptySlots │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── LicenseKeyFormatting │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── LongestUnivaluePath │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── NextClosestTime │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── RepeatedStringMatch │ │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ ├── LinkedList │ │ │ ├── InsertIntoACyclicSortedList │ │ │ │ ├── Java │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MergeKSortedLists │ │ │ │ ├── Java │ │ │ │ │ ├── ListNode.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── Others │ │ │ ├── MaximumProductOfWordLengths │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── UTF8Validation │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── Recursion │ │ │ ├── AndroidUnlockPatterns │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── StrobogrammaticNumber2 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── WordSearch2 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TrieNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── WordSquares │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ ├── Trie.java │ │ │ │ │ └── TrieNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── SortingAndSearching │ │ │ ├── DiagonalTraverse │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── EvaluateReversePolishNotation │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── FindKPairsWithSmallestSums │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── FindKthSmallestPairDistance │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── InsertInterval │ │ │ │ ├── Java │ │ │ │ │ ├── Interval.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── KthLargestElementInAnArray │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── LongestPalindromicSubstring │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MergeIntervals │ │ │ │ ├── Java │ │ │ │ │ ├── Interval.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── MinimumWindowSubstring │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── NextGreaterElement1 │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── PacificAtlanticWaterFlow │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── RangeModule │ │ │ │ ├── Java │ │ │ │ │ ├── RangeModule.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ShortestDistanceFromAllBuildings │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SortTransformedArray │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── SqrtOfX │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ ├── TreesAndGraphs │ │ │ ├── ClosestBinarySearchTreeValue │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── CourseSchedule │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── EvaluateDivision │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── InorderSuccessorInBst │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── RedundantConnection2 │ │ │ │ ├── Java │ │ │ │ │ ├── Graph.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── RobotRoomCleaner │ │ │ │ ├── Java │ │ │ │ │ ├── Asimo.java │ │ │ │ │ ├── Robot.java │ │ │ │ │ ├── Solution.java │ │ │ │ │ └── SolutionTest.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ ├── ValidateBinarySearchTree │ │ │ │ ├── Java │ │ │ │ │ ├── Solution.java │ │ │ │ │ ├── SolutionTest.java │ │ │ │ │ └── TreeNode.java │ │ │ │ ├── metadata.json │ │ │ │ └── readme.md │ │ │ └── readme.md │ │ └── readme.md │ │ └── TopInterviewQuestions_Easy │ │ ├── Array │ │ ├── BestTimeToBuySellStock2 │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ContainsDuplicate │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── IntersectionOfTwoArrays2 │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── MoveZeroes │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── PlusOne │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── RemoveDuplicatesFromSortedArray │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── RotateArray │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── RotateImage │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── SingleNumber │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── TwoSum │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ValidSudoku │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── DynamicProgramming │ │ ├── BestTimeToBuyAndSellStock │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ClimbingStairs │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── MaximumSubarray │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── LinkedList │ │ ├── DeleteNodeInALinkedList │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── LinkedListCycle │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── MergeTwoSortedLists │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── PalindromeLinkedList │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── RemoveNthNodeFromEndOfList │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ReverseLinkedList │ │ │ ├── Java │ │ │ │ ├── ListNode.java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── SortingAndSearching │ │ ├── FirstBadVersion │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── MergeSortedArray │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── Strings │ │ ├── CountAndSay │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── FirstUniqueCharacterInAString │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ImplementStrStr │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── LongestCommonPrefix │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ReverseInteger │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ReverseString │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── StringToIntegerAtoi │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ValidAnagram │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ValidPalindrome │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ └── SolutionTest.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ ├── Trees │ │ ├── BinaryTreeLevelOrderTraversal │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ConvertSortedArrayToBinarySearchTree │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── MaximumDepthOfBinaryTree │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── SymmetricTree │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── ValidateBinarySearchTree │ │ │ ├── Java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionTest.java │ │ │ │ └── TreeNode.java │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ └── readme.md │ │ └── readme.md │ └── Problems │ ├── P101_P200 │ ├── P103_BinaryTreeZigzagLevelOrderTraversal │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P122_BestTimeToBuySellStock2 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P125_ValidPalindrome │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P126_WordLadder2 │ │ └── .gitkeep │ ├── P127_WordLadder │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P131_PalindromePartitioning │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P136_SingleNumber │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P146_LruCache │ │ └── .gitkeep │ ├── P149_MaxPointsOnALine │ │ ├── Java │ │ │ ├── Point.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P150_EvaluateReversePolishNotation │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P152_MaximumProductSubarray │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P155_MinStack │ │ └── .gitkeep │ ├── P156_BinaryTreeUpsideDown │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P170_TwoSum3_DataStructureDesign │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TwoSum.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P173_BinarySearchTreeIterator │ │ ├── Java │ │ │ ├── BstIterator.java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P187_RepeatedDnaSequences │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P189_RotateArray │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P198_HouseRobber │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P200_NumberOfIslands │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P1_P100 │ ├── P10_RegularExpressionMatching │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P14_LongestCommonPrefix │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P15_ThreeSum │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P18_FourSum │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P19_RemoveNthNodeFromEndOfList │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P1_TwoSum │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P21_MergeTwoSortedLists │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P23_MergeKSortedLists │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P26_RemoveDuplicatesFromSortedArray │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P28_ImplementStrStr │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P31_NextPermutation │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P33_SearchInRotatedSortedArray │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P34_FindFirstAndLastPositionOfElementInSortedArray │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P35_SearchInsertPosition │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P36_ValidSudoku │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P38_CountAndSay │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P45_JumpGame2 │ │ └── readme.md │ ├── P46_Permutations │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P47_Permutations2 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P48_RotateImage │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P4_MedianOfTwoSortedArrays │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P50_Pow_x_n │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P53_MaximumSubarray │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P56_MergeIntervals │ │ ├── Java │ │ │ ├── Interval.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P57_InsertInterval │ │ ├── Java │ │ │ ├── Interval.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P65_ValidNumber │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P66_PlusOne │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P68_TextJustification │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P69_Sqrt_x │ │ └── .gitkeep │ ├── P76_MinimumWindowSubstring │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P7_ReverseInteger │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P8_StringToIntegerAtoi │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P201_P300 │ ├── P205_IsomorphicStrings │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P206_ReverseLinkedList │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P211_AddAndSearchWord_DataStructureDesign │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── WordDictionary.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P217_ContainsDuplicate │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P236_LowestCommonAncestorOfABinaryTree │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P237_DeleteNodeInALinkedList │ │ ├── Java │ │ │ ├── ListNode.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P238_ProductOfArrayExceptSelf │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P242_ValidAnagram │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P243_ShortestWordDistance │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P244_ShortedWordDistance2 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ ├── WordDistance.java │ │ │ └── WordDistanceTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P245_ShortestWordDistance3 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P254_FactorCombinations │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P256_PaintHouse │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P272_ClosestBinarySearchTreeValue2 │ │ ├── metadata.json │ │ └── readme.md │ ├── P277_FindTheCelebrity │ │ ├── Java │ │ │ ├── Relation.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P283_MoveZeroes │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P297_SerializeAndDeserializeBinaryTree │ │ ├── Java │ │ ├── Codec.java │ │ ├── Solution.java │ │ ├── SolutionTest.java │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P301_P400 │ ├── P311_SparseMatrixMultiplication │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P339_NestedListWeightSum │ │ ├── Java │ │ │ ├── NestedInteger.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P344_ReverseString │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P350_IntersectionOfTwoArrays2 │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P364_NestedListWeightSum2 │ │ ├── Java │ │ │ ├── NestedInteger.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P366_FindLeavesOfBinaryTree │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P367_ValidPerfectSquare │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P387_FirstUniqueCharacterInAString │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P401_P500 │ ├── P416_PartitionEqualSubsetSum │ │ └── .gitkeep │ └── P464_CanIWin │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P501_P600 │ ├── P515_FindLargestValueInEachTreeRow │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ └── P516_LongestPalindromicSubsequence │ │ └── .gitkeep │ ├── P601_P700 │ ├── P605_CanPlaceFlowers │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P633_SumOfSquareNumbers │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P647_PalindromicSubstrings │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P671_SecondMinimumNodeInABinaryTree │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ └── P698_PartitionToKEqualSumSubsets │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── P701_P800 │ ├── P716_MaxStack │ │ ├── Java │ │ │ ├── MaxStack.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P730_CountDifferentPalindromicSubsequences │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── P901_P1000 │ └── P921_MinimumAddToMakeParenthesesValid │ ├── Java │ ├── Solution.java │ └── SolutionTest.java │ ├── metadata.json │ └── readme.md ├── LintCode └── src │ └── .gitkeep ├── Miscellaneous └── src │ ├── Courses │ ├── Bloomberg │ │ └── FoundationsOfMachineLearning │ │ │ └── .gitkeep │ └── Google │ │ └── MachineLearningCrashCourse │ │ └── .gitkeep │ └── Problems │ ├── Coding │ ├── BinaryTreeToDoublyLinkedList │ │ ├── metadata.json │ │ └── readme.md │ ├── CloneLinkedListWithNextAndRandomPointer │ │ ├── Java │ │ │ ├── LinkedList.java │ │ │ ├── Node.java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── CommonLettersInInputStrings │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── EvaluateExpression │ │ └── .gitkeep │ ├── EvaluateExpressionWithBrackets │ │ └── .gitkeep │ ├── FindNumberLittleOrBigEndian │ │ ├── metadata.json │ │ └── readme.md │ ├── ImplementQueueUsingStack │ │ ├── metadata.json │ │ └── readme.md │ ├── InMemoryDatabaseWithNestedTransactions │ │ ├── metadata.json │ │ └── readme.md │ ├── IndexOfLastOccurrenceOfElementInArray │ │ └── metadata.json │ ├── KthLargestElementInBst │ │ ├── metadata.json │ │ └── readme.md │ ├── LevelOrderTraversalBinaryTreeLevelByLevel │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── LevelOrderTraversalBinaryTreeSingleLine │ │ ├── Java │ │ │ ├── Solution.java │ │ │ ├── SolutionTest.java │ │ │ └── TreeNode.java │ │ ├── metadata.json │ │ └── readme.md │ ├── MapWordsListToGrid │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── MappingBetweenMessageAndCode │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── NumberOfDistinctIslands │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── RemoveDuplicatesAndReturnList │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── RemoveDuplicatesAndReturnWeightedList │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── ReverseString │ │ ├── metadata.json │ │ └── readme.md │ ├── RotateTheBitsOfANumber │ │ ├── metadata.json │ │ └── readme.md │ ├── SeedRecordsPerBin │ │ ├── csharp │ │ │ ├── Solution │ │ │ │ ├── Engine.cs │ │ │ │ ├── Program.cs │ │ │ │ └── Solution.csproj │ │ │ └── SolutionTest │ │ │ │ ├── EngineTests.cs │ │ │ │ └── SolutionTest.csproj │ │ ├── metadata.json │ │ └── readme.md │ ├── SortCommaSeparatedProducts │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── StreamingReadApi │ │ └── readme.md │ ├── SwapTwoPointers │ │ ├── metadata.json │ │ └── readme.md │ ├── TimeseriesTransformation │ │ └── readme.md │ ├── TopThreeSequenceVisited │ │ ├── metadata.json │ │ └── readme.md │ └── TruckLoadingTotalWeight │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── csharp │ │ ├── Solution │ │ │ ├── Engine.cs │ │ │ ├── Program.cs │ │ │ └── Solution.csproj │ │ └── SolutionTest │ │ │ ├── EngineTests.cs │ │ │ └── SolutionTest.csproj │ │ ├── metadata.json │ │ └── readme.md │ ├── KnownAlgorithms │ ├── BinarySearch │ │ └── .gitkeep │ ├── BreadthFirstSearch │ │ ├── BinaryTree │ │ │ └── .gitkeep │ │ └── Graph │ │ │ └── .gitkeep │ ├── DepthFirstSearch │ │ ├── BinaryTree │ │ │ └── .gitkeep │ │ └── Graph │ │ │ └── .gitkeep │ ├── DetectCycleInDirectedGraphAlgorithm │ │ └── .gitkeep │ ├── SlidingWindow │ │ └── .gitkeep │ ├── SparseTableAlgorithm │ │ └── .gitkeep │ ├── StringPermutationAlgorithm │ │ └── .gitkeep │ ├── TopologicalSortingForDirectedAcyclicGraph │ │ └── .gitkeep │ ├── UnionFindAlgorithm │ │ └── .gitkeep │ ├── UnionFindAlgorithm_UnionByRankAndPathCompression │ │ └── .gitkeep │ ├── ZAlgorithm │ │ └── .gitkeep │ └── _NamedAlgorithms │ │ ├── BellmanFordAlgorithm │ │ └── .gitkeep │ │ ├── BlumFloydPrattRivestTarjanAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── DijkstrasAlgorithm │ │ └── .gitkeep │ │ ├── EdmondsKarpAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── FloydWarshallAlgorithm │ │ └── .gitkeep │ │ ├── FordFulkersonAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── HierholzersAlgorithmForDirectedGraph │ │ └── .gitkeep │ │ ├── JohnsonsAlgorithm │ │ └── .gitkeep │ │ ├── KadanesAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── KnuthMorrisPrattAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── KosarajusAlgorithm │ │ └── .gitkeep │ │ ├── KruskalsAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── LeeAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── ManachersAlgorithm │ │ ├── metadata.json │ │ └── readme.md │ │ ├── MorrisInorderTreeTraversal │ │ └── .gitkeep │ │ ├── PrimsAlgorithm │ │ └── .gitkeep │ │ ├── RabinKarpAlgorithm │ │ └── .gitkeep │ │ └── UkkonensAlgorithm │ │ └── .gitkeep │ ├── KnownDataStructures │ └── _NamedDataStructures │ │ ├── FenwickTreeOrBinaryIndexedTree │ │ └── .gitkeep │ │ └── Trie │ │ └── .gitkeep │ └── SystemsDesign │ ├── AutomatedParkingGarage │ ├── metadata.json │ └── readme.md │ ├── DesignBackendForOnlineRetailer │ ├── metadata.json │ └── readme.md │ ├── DesignPaywall │ ├── metadata.json │ └── readme.md │ ├── Elevator │ ├── metadata.json │ └── readme.md │ ├── ImagesDedeplicator │ ├── metadata.json │ └── readme.md │ └── ScalingReadRequests │ ├── metadata.json │ ├── readme.md │ └── scaling-read-requests.svg ├── NeetCode └── misc.md ├── Pramp └── src │ ├── Blog │ └── SlidingWindow │ │ ├── AllKSubsequenceMaximums │ │ └── metadata.json │ │ ├── MaximumSumSubsequence │ │ └── metadata.json │ │ └── MovingAverage │ │ └── metadata.json │ └── Problems │ ├── Behavioral │ ├── BehavioralQuestionSet10 │ │ ├── metadata.json │ │ └── readme.md │ ├── BehavioralQuestionSet2 │ │ ├── metadata.json │ │ └── readme.md │ ├── BehavioralQuestionSet3 │ │ ├── metadata.json │ │ └── readme.md │ └── BehavioralQuestionSet4 │ │ ├── metadata.json │ │ └── readme.md │ ├── DataStructuresAndAlgorithms │ ├── ArrayQuadruplet │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── BasicRegexParser │ │ └── metadata.json │ ├── BstSuccessorSearch │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ ├── DecryptMessage │ │ ├── Java │ │ │ ├── Solution.java │ │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── NumberOfPaths │ │ ├── Java │ │ ├── Solution.java │ │ └── SolutionTest.java │ │ ├── metadata.json │ │ └── readme.md │ └── SystemDesign │ ├── KeyValueCacheForSearchEngine │ ├── metadata.json │ └── readme.md │ ├── SalesRank │ ├── metadata.json │ └── readme.md │ ├── ScaleOnTheCloud │ ├── metadata.json │ └── readme.md │ ├── SocialGraph │ ├── metadata.json │ └── readme.md │ ├── Twitter │ ├── metadata.json │ └── readme.md │ └── WebCrawler │ ├── metadata.json │ └── readme.md ├── ProgramCreek └── src │ └── .gitkeep ├── ProjectEuler └── src │ └── .gitkeep ├── TopCoder └── src │ └── .gitkeep ├── Udacity └── src │ └── .gitkeep ├── Udemy └── src │ ├── acloudguru-aws-certified-solutions-architect-associate │ ├── Section01_Introduction │ │ └── readme.md │ └── metadata.json │ ├── the-ultimate-handson-hadoop-tame-your-big-data │ ├── Section01_LearnAllTheBuzzwordsAndInstallHdps │ │ └── readme.md │ ├── Section02_UsingHadoopsCore-HdfsAndMapReduce │ │ └── readme.md │ └── metadata.json │ └── ultimate-aws-certified-solutions-architect-associate │ └── metadata.json ├── VirtualJudge └── .gitkeep ├── _notes └── books │ ├── behind-the-cloud │ └── .gitkeep │ ├── explain-the-cloud-like-i-am-10 │ └── .gitkeep │ └── site-reliability-engineering-how-google-runs-production-systems │ └── .gitkeep └── spoj └── src └── .gitkeep /.codebeatignore: -------------------------------------------------------------------------------- 1 | website/js/third-party/** -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | 1. Please follow the template for adding problems. This is inherently tied into the mechanism for searching through problems using the [planned website](https://github.com/computer-science-engineering/learning-computer-science/projects/1). 4 | 2. Templates for metadata.json (problem metadata), readme.md (problem definition) and language specific solution and solution test files are available via VSCode snippets. They are all committed and available via the repository (.vscode folder). Please familiarize yourself with using snippets in VSCode. 5 | 3. You are encouraged to fork this repository and submit pull requests. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Custom template for issues 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Problem Statement 11 | 12 | ## Description 13 | 14 | ### Platform 15 | 16 | ### Expected behavior 17 | 18 | ### Observed behavior 19 | 20 | ## Steps to reproduce behavior 21 | 22 | ## Other notes 23 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Issue 2 | 3 | ## List of proposed changes/fixes 4 | 5 | ## Other notes 6 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": true, 3 | "MD007": { 4 | "indent": 2 5 | }, 6 | "MD013": false 7 | } 8 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | node 2 | -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.12.3 2 | -------------------------------------------------------------------------------- /.vscode/configurationCache.log: -------------------------------------------------------------------------------- 1 | {"buildTargets":["all","code","csharp-code","csharp-xunit-tests","get-problems-count","git","git-get-submodules","git-submodules-setup","git-upgrade-ubuntu","git-version","java-build","java-clean","java-code","java-dependencies","java-test","java-test-coverage","python-code","python-requirements","python-test-coverage","python-tests"],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}} -------------------------------------------------------------------------------- /.vscode/dryrun.log: -------------------------------------------------------------------------------- 1 | make.exe --dry-run --always-make --keep-going --print-directory 2 | make: Entering directory '/g/dev/_my-projects/_orgs/computer-science-engineering/learning-computer-science' 3 | .\gradlew.bat dependencies 4 | make: Leaving directory '/g/dev/_my-projects/_orgs/computer-science-engineering/learning-computer-science' 5 | 6 | -------------------------------------------------------------------------------- /documentation/development/design-architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/documentation/development/design-architecture.md -------------------------------------------------------------------------------- /documentation/development/testing.md: -------------------------------------------------------------------------------- 1 | # Testing 2 | 3 | 1. VSCode tasks are available via the repository (.vscode folder) for running all language specific tests. Please familiarize yourself with using tasks in VSCode. 4 | 2. Makefile tasks are also provided for running tests. 5 | 3. To run individual test using gradlew following example may be used as a guideline: `./gradlew test --tests *P1_FindTheMedianOfANumberStream*`. If during test tun, print outputs needs to be viewed, uncomment line `showStandardStreams true` in the build.gradle file at the root of the project. 6 | -------------------------------------------------------------------------------- /documentation/product/installation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/documentation/product/installation.md -------------------------------------------------------------------------------- /documentation/product/usage.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | ## Viewing 4 | 5 | 1. Open repository using [Visual Studio Code](https://code.visualstudio.com/). Recommended extensions have been provided by the repository (.vscode folder). 6 | 2. Use [Sourcegraph](https://sourcegraph.com/github.com/manastalukdar/learning-computer-science/). 7 | 3. A website for filtering and querying is [work-in-progress](https://github.com/manastalukdar/learning-computer-science/projects/1). 8 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | systemProp.jdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Learning Computer Science", 4 | "skip_for_problems_list": "True" 5 | } 6 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base", ":preserveSemverRanges"] 3 | } 4 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | markdown 2 | BeautifulSoup4 3 | coverage<7.6 # manual enforcement for coveralls dependency: coveralls 1.9.2 has requirement coverage<5.0,>=3.6 4 | codacy-coverage 5 | codecov 6 | coveralls -------------------------------------------------------------------------------- /resources/images/logo/Logo LCS color/logo LCS color high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/Logo LCS color/logo LCS color high res.png -------------------------------------------------------------------------------- /resources/images/logo/Logo LCS color/logo LCS color low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/Logo LCS color/logo LCS color low res.png -------------------------------------------------------------------------------- /resources/images/logo/Logo LCS color/logo LCS color.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/Logo LCS color/logo LCS color.ai -------------------------------------------------------------------------------- /resources/images/logo/Logo LCS color/logo LCS color.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/Logo LCS color/logo LCS color.eps -------------------------------------------------------------------------------- /resources/images/logo/Logo LCS color/logo LCS color.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/Logo LCS color/logo LCS color.psd -------------------------------------------------------------------------------- /resources/images/logo/button LCS black/button LCS black high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS black/button LCS black high res.png -------------------------------------------------------------------------------- /resources/images/logo/button LCS black/button LCS black low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS black/button LCS black low res.png -------------------------------------------------------------------------------- /resources/images/logo/button LCS black/button LCS black.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS black/button LCS black.ai -------------------------------------------------------------------------------- /resources/images/logo/button LCS black/button LCS black.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS black/button LCS black.eps -------------------------------------------------------------------------------- /resources/images/logo/button LCS black/button LCS black.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS black/button LCS black.psd -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/button LCS color2-01 (1).eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/button LCS color2-01 (1).eps -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/button LCS color2-01 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/button LCS color2-01 (1).png -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/old/button LCS color high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/old/button LCS color high res.png -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/old/button LCS color low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/old/button LCS color low res.png -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/old/button LCS color.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/old/button LCS color.ai -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/old/button LCS color.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/old/button LCS color.eps -------------------------------------------------------------------------------- /resources/images/logo/button LCS color/old/button LCS color.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/button LCS color/old/button LCS color.psd -------------------------------------------------------------------------------- /resources/images/logo/icon LCS black/icon LCS black high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS black/icon LCS black high res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS black/icon LCS black low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS black/icon LCS black low res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS black/icon LCS black.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS black/icon LCS black.ai -------------------------------------------------------------------------------- /resources/images/logo/icon LCS black/icon LCS black.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS black/icon LCS black.eps -------------------------------------------------------------------------------- /resources/images/logo/icon LCS black/icon LCS black.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS black/icon LCS black.psd -------------------------------------------------------------------------------- /resources/images/logo/icon LCS color/icon LCS color high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS color/icon LCS color high res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS color/icon LCS color low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS color/icon LCS color low res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS color/icon LCS color.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS color/icon LCS color.ai -------------------------------------------------------------------------------- /resources/images/logo/icon LCS color/icon LCS color.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS color/icon LCS color.eps -------------------------------------------------------------------------------- /resources/images/logo/icon LCS color/icon LCS color.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS color/icon LCS color.psd -------------------------------------------------------------------------------- /resources/images/logo/icon LCS line/icon LCS line high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS line/icon LCS line high res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS line/icon LCS line low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS line/icon LCS line low res.png -------------------------------------------------------------------------------- /resources/images/logo/icon LCS line/icon LCS line.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS line/icon LCS line.ai -------------------------------------------------------------------------------- /resources/images/logo/icon LCS line/icon LCS line.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS line/icon LCS line.eps -------------------------------------------------------------------------------- /resources/images/logo/icon LCS line/icon LCS line.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/icon LCS line/icon LCS line.psd -------------------------------------------------------------------------------- /resources/images/logo/logo LCS black/logo LCS black high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS black/logo LCS black high res.png -------------------------------------------------------------------------------- /resources/images/logo/logo LCS black/logo LCS black low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS black/logo LCS black low res.png -------------------------------------------------------------------------------- /resources/images/logo/logo LCS black/logo LCS black.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS black/logo LCS black.ai -------------------------------------------------------------------------------- /resources/images/logo/logo LCS black/logo LCS black.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS black/logo LCS black.eps -------------------------------------------------------------------------------- /resources/images/logo/logo LCS black/logo LCS black.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS black/logo LCS black.psd -------------------------------------------------------------------------------- /resources/images/logo/logo LCS line/logo LCS line high res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS line/logo LCS line high res.png -------------------------------------------------------------------------------- /resources/images/logo/logo LCS line/logo LCS line low res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS line/logo LCS line low res.png -------------------------------------------------------------------------------- /resources/images/logo/logo LCS line/logo LCS line.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS line/logo LCS line.ai -------------------------------------------------------------------------------- /resources/images/logo/logo LCS line/logo LCS line.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS line/logo LCS line.eps -------------------------------------------------------------------------------- /resources/images/logo/logo LCS line/logo LCS line.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/resources/images/logo/logo LCS line/logo LCS line.psd -------------------------------------------------------------------------------- /scripts/python-requirements.txt: -------------------------------------------------------------------------------- 1 | markdown 2 | BeautifulSoup4 3 | coverage -------------------------------------------------------------------------------- /src/AlgoExpert/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.algoexpert.io/ -------------------------------------------------------------------------------- /src/ByteByByte/readme.md: -------------------------------------------------------------------------------- 1 | # Byte by Byte 2 | 3 | [50 Coding Interview Questions](https://www.byte-by-byte.com/wp-content/uploads/2019/01/50-Coding-Interview-Questions.pdf) -------------------------------------------------------------------------------- /src/CareerCup/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CareerCup/src/.gitkeep -------------------------------------------------------------------------------- /src/CodeChef/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CodeChef/src/.gitkeep -------------------------------------------------------------------------------- /src/CodeFights/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CodeFights/src/.gitkeep -------------------------------------------------------------------------------- /src/CodeForces/src/.gitkeep: -------------------------------------------------------------------------------- 1 | http://codeforces.com -------------------------------------------------------------------------------- /src/CodeGolfIo/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://code-golf.io/ -------------------------------------------------------------------------------- /src/CodeWars/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CodeWars/src/.gitkeep -------------------------------------------------------------------------------- /src/CoderByte/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://coderbyte.com/ -------------------------------------------------------------------------------- /src/Codility/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Codility/src/.gitkeep -------------------------------------------------------------------------------- /src/Coursera/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Coursera/src/.gitkeep -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/_misc/Gayle_McDowell_CareerCup_Sample_Resume.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CrackingTheCodingInterview/_misc/Gayle_McDowell_CareerCup_Sample_Resume.doc -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/_misc/cracking_the_coding_skills_-_v6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CrackingTheCodingInterview/_misc/cracking_the_coding_skills_-_v6.pdf -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/_misc/cracking_the_pm_skills_-_v6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CrackingTheCodingInterview/_misc/cracking_the_pm_skills_-_v6.pdf -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/_misc/cracking_the_soft_skills_-_v6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/CrackingTheCodingInterview/_misc/cracking_the_soft_skills_-_v6.pdf -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/BTreePrinter/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "BTree Printer", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "", 20 | "" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/BTreePrinter/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/LinkedListNode/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Linked List Node", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "", 20 | "" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/LinkedListNode/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/TreeNode/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Tree Node", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "", 20 | "" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/TreeNode/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/Trie/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Trie", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "", 20 | "" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/Trie/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/TrieNode/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Trie Node", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "", 20 | "" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/Helper/TrieNode/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/ArrayList/Java/ArrayList.java: -------------------------------------------------------------------------------- 1 | package CrackingTheCodingInterview.src.Book.IX_InterviewQuestions.DataStructures.Ch01_ArraysAndStrings.Q0_Introduction.ArrayList.Java; 2 | 3 | class ArrayList { 4 | } 5 | -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/ArrayList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/HashTable/Java/HashTable.java: -------------------------------------------------------------------------------- 1 | package CrackingTheCodingInterview.src.Book.IX_InterviewQuestions.DataStructures.Ch01_ArraysAndStrings.Q0_Introduction.HashTable.Java; 2 | 3 | 4 | class HashTable { 5 | } 6 | -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/HashTable/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/StringBuilder/Java/StringBuilder.java: -------------------------------------------------------------------------------- 1 | package CrackingTheCodingInterview.src.Book.IX_InterviewQuestions.DataStructures.Ch01_ArraysAndStrings.Q0_Introduction.StringBuilder.Java; 2 | 3 | class StringBuilder { 4 | } 5 | -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q0_Introduction/StringBuilder/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q1_IsUnique/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q1 Is Unique", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays", 20 | "Strings" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q1_IsUnique/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Implement an algorithm to determine if a string has all unique characters. What if you 6 | cannot use additional data structures? 7 | 8 | ## Notes 9 | 10 | ### Questions 11 | 12 | - Is the string ASCII or Unicode? 13 | -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q2_CheckPermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q2 Check Permutation", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays", 20 | "Strings" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q2_CheckPermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given two strings, write a method to decide if one is a permutation of the other. 6 | 7 | ## Notes 8 | 9 | ### Questions 10 | 11 | - Is permutation comparison case-sensitive? 12 | - Is whitespace significant? 13 | -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q3_URLify/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q3 URLify", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays", 20 | "Strings" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q3_URLify/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q4_PalindromePermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q4 Palindrome Permutation", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays", 20 | "Strings" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch01_ArraysAndStrings/Q4_PalindromePermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch02_LinkedLists/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Linked List", 4 | "origin": { 5 | "name": "Cracking the Coding Interview", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Linked Lists" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/CrackingTheCodingInterview/src/Book/IX_InterviewQuestions/DataStructures/Ch02_LinkedLists/readme.md: -------------------------------------------------------------------------------- 1 | # Linked List 2 | 3 | ## Origin 4 | 5 | ## Description 6 | 7 | ## Companies 8 | 9 | ## Categories 10 | 11 | ## Tags 12 | 13 | ## Notes -------------------------------------------------------------------------------- /src/CsAcademy/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://csacademy.com/contest/interview-archive/ -------------------------------------------------------------------------------- /src/DailyCodingProblem/src/P1_P100/P1_TwoSum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a list of numbers and a number k, return whether any two numbers from the list add up to k. 6 | 7 | For example, given [10, 15, 3, 7] and k of 17, return true since 10 + 7 is 17. 8 | 9 | Bonus: Can you do this in one pass? 10 | 11 | ## Notes -------------------------------------------------------------------------------- /src/DailyCodingProblem/src/P1_P100/P5_FirstAndLastElementOfPair/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package DailyCodingProblem.src.P1_P100.P5_FirstAndLastElementOfPair.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | cons pair = new cons(3, 4); 6 | System.out.println(car(pair)); 7 | System.out.println(cdr(pair)); 8 | } 9 | 10 | public static int car(cons pair) { 11 | return pair.firstElement; 12 | } 13 | 14 | public static int cdr(cons pair) { 15 | return pair.secondElement; 16 | } 17 | } -------------------------------------------------------------------------------- /src/DailyCodingProblem/src/P1_P100/P5_FirstAndLastElementOfPair/Java/cons.java: -------------------------------------------------------------------------------- 1 | package DailyCodingProblem.src.P1_P100.P5_FirstAndLastElementOfPair.Java; 2 | 3 | public class cons { 4 | public cons(int a, int b) { 5 | firstElement = a; 6 | secondElement = b; 7 | } 8 | 9 | public int firstElement; 10 | 11 | public int secondElement; 12 | } -------------------------------------------------------------------------------- /src/DailyCodingProblem/src/P1_P100/P5_FirstAndLastElementOfPair/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | cons(a, b) constructs a pair, and car(pair) and cdr(pair) returns the first and last element of that pair. For example, car(cons(3, 4)) returns 3, and cdr(cons(3, 4)) returns 4. 6 | 7 | Given this implementation of cons: 8 | 9 | ```python 10 | def cons(a, b): 11 | def pair(f): 12 | return f(a, b) 13 | return pair 14 | ``` 15 | 16 | Implement car and cdr. 17 | 18 | ## Notes 19 | 20 | 1. [GitHub - r1cc4rdo](https://github.com/r1cc4rdo/daily_coding_problem/blob/master/daily_coding_problem_01_05.py) -------------------------------------------------------------------------------- /src/DailyCodingProblem/src/P201_300/P205_NextPermutationOfIntegerInAbsoluteOrder/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an integer, find the next permutation of it in absolute order. For example, given `48975`, the next permutation would be `49578`. 6 | 7 | ## Notes 8 | 9 | 1. [LeetCode solution](https://leetcode.com/problems/next-permutation/solution/) -------------------------------------------------------------------------------- /src/DailyInterviewPro/src/P1_P100/P1_AddTwoNumbersAsALinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package DailyInterviewPro.src.P1_P100.P1_AddTwoNumbersAsALinkedList.Java; 2 | 3 | class ListNode { 4 | int value = 0; 5 | ListNode next; 6 | 7 | ListNode(int value) { 8 | this.value = value; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/DailyInterviewPro/src/P1_P100/P2_LongestSubstringWithoutRepeatingCharacters/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, find the length of the longest substring without repeating characters. 6 | 7 | ```python 8 | class Solution: 9 | def lengthOfLongestSubstring(self, s): 10 | # Fill this in. 11 | 12 | print Solution().lengthOfLongestSubstring('abrkaabcdefghijjxxx') 13 | # 10 14 | ``` 15 | 16 | ## Discussion 17 | 18 | ### Time Complexity 19 | 20 | ### Space Complexity 21 | 22 | ## Notes 23 | 24 | ## References 25 | -------------------------------------------------------------------------------- /src/DesignGurus/misc.md: -------------------------------------------------------------------------------- 1 | # Misc 2 | 3 | https://www.designgurus.io/courses -------------------------------------------------------------------------------- /src/EducativeIo/Courses/CoderustHackingTheCodingInterview/.gitkeep: -------------------------------------------------------------------------------- 1 | https://github.com/maxjing/Coderust-Hacking-the-Coding-Interview 2 | https://github.com/Tonyfy/hack-cracking-the-coding-interview 3 | https://github.com/kevinfiol/coderust-free -------------------------------------------------------------------------------- /src/EducativeIo/Courses/GrokkingTheSystemDesignInterview/01-SystemDesignBasics/readme.md: -------------------------------------------------------------------------------- 1 | # Glossary of System Design Basics 2 | 3 | 1. System Design Basics 4 | 2. Key Characteristics of Distributed Systems 5 | 3. Load Balancing 6 | 4. Caching 7 | 5. Data Partitioning 8 | 6. Indexes 9 | 7. Proxies 10 | 8. Redundancy and Replication 11 | 9. SQL vs. NoSQL 12 | 10. CAP Theorem 13 | 11. Consistent Hashing 14 | 12. Long-Polling vs WebSockets vs Server-Sent Events 15 | -------------------------------------------------------------------------------- /src/EducativeIo/Courses/GrokkingTheSystemDesignInterview/02-SystemDesignProblems/01-SystemDesignInterviews_AStepByStepGuide/readme.md: -------------------------------------------------------------------------------- 1 | # System Design Interviews: A step by step guide 2 | 3 | ## Step 1: Requirements clarifications 4 | 5 | ## Step 2: System interface definition 6 | 7 | ## Step 3: Back-of-the-envelope estimation 8 | 9 | ## Step 4: Defining data model 10 | 11 | ## Step 5: High-level design 12 | 13 | ## Step 6: Detailed design 14 | 15 | ## Step 7: Identifying and resolving bottlenecks 16 | -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q0_BootCamp/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q0 Boot Camp", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q0_BootCamp/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q1_ComputeParityOfWord/Java/Parity1.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C5_PrimitiveTypes.Q1_ComputeParityOfWord.Java; 2 | 3 | public class Parity1 { 4 | 5 | public static short parity(long x) { 6 | short result = 0; 7 | while (x != 0) { 8 | result ^= (x & 1); 9 | x >>>= 1; 10 | } 11 | return result; 12 | } 13 | 14 | public static void main(String[] args) { 15 | short y = parity(9); 16 | System.out.println(y); 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q1_ComputeParityOfWord/Java/Parity2.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C5_PrimitiveTypes.Q1_ComputeParityOfWord.Java; 2 | 3 | public class Parity2 { 4 | public static short parity(long x) { 5 | short result = 0; 6 | while (x != 0) { 7 | result ^= 1; 8 | x &= (x - 1); // Drops the lowest set bit of x. 9 | } 10 | 11 | return result; 12 | } 13 | 14 | public static void main(String[] args) { 15 | short y = parity(9); 16 | System.out.println(y); 17 | } 18 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q1_ComputeParityOfWord/Java/Parity4.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C5_PrimitiveTypes.Q1_ComputeParityOfWord.Java; 2 | 3 | public class Parity4 { 4 | public static short parity(long x) { 5 | x ^= x >>> 32; 6 | x ^= x >>> 16; 7 | x ^= x >>> 8; 8 | x ^= x >>> 4; 9 | x ^= x >>> 2; 10 | x ^= x >>> 1; 11 | return (short) (x & 0x1); 12 | } 13 | 14 | public static void main(String[] args) { 15 | short y = parity(9); 16 | System.out.println(y); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q1_ComputeParityOfWord/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q1 Compute Parity Of Word", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q1_ComputeParityOfWord/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q2_SwapBits/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q2 Swap Bits", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q2_SwapBits/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q3_ReverseBits/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q3 Reverse Bits", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q3_ReverseBits/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q4_FindClosestIntWithSameWeight/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q4 Find Closest Int With Same Weight", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q4_FindClosestIntWithSameWeight/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q5_MultiplyWithoutArithmeticalOperators/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q5 Multiply Without Arithmetical Operators", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q5_MultiplyWithoutArithmeticalOperators/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q6_ComputeDivision/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q6 Compute Division", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q6_ComputeDivision/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q7_ComputePower/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q7 Compute Power", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q7_ComputePower/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q8_ReverseDigits/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q8 Reverse Digits", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q8_ReverseDigits/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q9_DecimalIntegerPalindromeCheck/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q9 Decimal Integer Palindrome Check", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Primitive Types" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C5_PrimitiveTypes/Q9_DecimalIntegerPalindromeCheck/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/ComputingAnAlternation/Java/Rearrange.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C6_Arrays.ComputingAnAlternation.Java; 2 | 3 | public class Rearrange { 4 | } 5 | -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/ComputingAnAlternation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Computing An Alternation", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/ComputingAnAlternation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q0_BootCamp/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q0 Boot Camp", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q0_BootCamp/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/PreviousPermutation/Java/PreviousPermutation.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C6_Arrays.Q10_ComputeTheNextPermutation.Variants.PreviousPermutation.Java; 2 | 3 | public class PreviousPermutation { 4 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/PreviousPermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Previous Permutation", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/PreviousPermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/kthPermutation/Java/kthPermutation.java: -------------------------------------------------------------------------------- 1 | package ElementsOfProgrammingInterviews.src.Book.C6_Arrays.Q10_ComputeTheNextPermutation.Variants.kthPermutation.Java; 2 | 3 | public class kthPermutation { 4 | } 5 | -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/kthPermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "kth Permutation", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/Variants/kthPermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes 6 | 7 | 1. [lucaslouca github](https://github.com/lucaslouca/kth-permutation) 8 | 1. [zrzahid](http://www.zrzahid.com/k-th-permutation-sequence/) 9 | 1. [LeetCode](https://leetcode.com/problems/permutation-sequence) -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q10 Compute The Next Permutation", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q10_ComputeTheNextPermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q11_SampleOfflineData/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q11 Sample Offline Data", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q11_SampleOfflineData/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q12_SampleOnlineData/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q12 Sample Online Data", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q12_SampleOnlineData/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q13_ComputeRandomPermutation/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q13 Compute Random Permutation", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q13_ComputeRandomPermutation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q14_ComputeRandomSubset/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q14 Compute Random Subset", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q14_ComputeRandomSubset/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q1_DutchNationalFlag/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q1 Dutch National Flag", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q1_DutchNationalFlag/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q2_IncrementAnArbitraryPrecisionInteger/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q2 Increment An Arbitrary Precision Integer", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q2_IncrementAnArbitraryPrecisionInteger/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q3_MultiplyTwoArbitraryPrecisionIntegers/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q3 Multiply Two Arbitrary Precision Integers", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q3_MultiplyTwoArbitraryPrecisionIntegers/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q4_AdvancingThroughAnArray/Variants/MinNumberOfSteps/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Min Number Of Steps", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q4_AdvancingThroughAnArray/Variants/MinNumberOfSteps/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes 6 | 7 | 1. [Geeks for Geeks post](http://www.geeksforgeeks.org/minimum-number-of-jumps-to-reach-end-of-a-given-array/) -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q4_AdvancingThroughAnArray/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q4 Advancing Through An Array", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q4_AdvancingThroughAnArray/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q5_DeleteDuplicatesFromSortedArray/Variants/LimitDuplicates/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Limit Duplicates", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q5_DeleteDuplicatesFromSortedArray/Variants/LimitDuplicates/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q5_DeleteDuplicatesFromSortedArray/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q5 Delete Duplicates From Sorted Array", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q5_DeleteDuplicatesFromSortedArray/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q6_BuyAndSellStockOnce/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q6 Buy And Sell Stock Once", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q6_BuyAndSellStockOnce/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q7_BuyAndSellStockTwice/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q7 Buy And Sell Stock Twice", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q7_BuyAndSellStockTwice/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q8_EnumerateAllPrimesToN/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q8 Enumerate All Primes To N", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q8_EnumerateAllPrimesToN/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q9_PermuteElementsOfArray/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Q9 Permute Elements Of Array", 4 | "origin": { 5 | "name": "Elements of Programming Interviews", 6 | "link": "" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Books", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ElementsOfProgrammingInterviews/src/Book/C6_Arrays/Q9_PermuteElementsOfArray/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Exercism/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://exercism.io/ -------------------------------------------------------------------------------- /src/ExpertMitra/BootCamp/.gitkeep: -------------------------------------------------------------------------------- 1 | https://expertmitra.com/coding-bootcamp -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/BinarySearchOnArrayOfIntegers/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Binary Search On Array Of Integers", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "Oracle", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Strings", 20 | "Arrays" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/BinarySearchOnArrayOfIntegers/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Write a method that searches an Array of integers for a given integer using the Binary Search Algorithm. If the input integer is found in the array, return true. Otherwise, return false. You can assume that the given array of integers is already sorted in ascending order. 6 | 7 | Examples: 8 | 9 | ```plaintext 10 | binarySearch({2,5,7,8,9},9) -> true 11 | 12 | binarySearch({2,8,9,12},6) -> false 13 | 14 | binarySearch({2},4) -> false 15 | 16 | binarySearch({},9) -> false 17 | 18 | {} -> [Empty] Array 19 | ``` 20 | 21 | ## Notes -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/FindFirstNonDuplicateCharacterInAString/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Find the First Non Duplicate Character in a String", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "Oracle", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Strings", 20 | "Hash Tables" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/FindFirstNonDuplicateCharacterInAString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Find the first non-duplicate character in a string. Return null if no unique character is found. 6 | 7 | ```plaintext 8 | firstNonRepeatedCharacter( "abcdcd" ) --> 'a' 9 | firstNonRepeatedCharacter( "cbcd" ) --> 'b' 10 | firstNonRepeatedCharacter( "cdcd" ) --> null 11 | ``` 12 | 13 | ## Notes -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/FlipIt/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Flip It", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "Infosys", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays", 20 | "Multi Dimensional Arrays" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/FlipIt/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | You are given an m x n 2D image matrix where each integer represents a pixel. Flip it in-place along its vertical axis. 6 | 7 | Example: 8 | 9 | ```plaintext 10 | Input image : 11 | 1 0 12 | 1 0 13 | 14 | Modified to : 15 | 0 1 16 | 0 1 17 | ``` 18 | 19 | ## Notes -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/PalindromeTester/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Palindrome Tester", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Strings", 20 | "Arrays" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/RepeatedElementsInAnArray/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Repeated Elements In An Array", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "Bloomberg", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/RepeatedElementsInAnArray/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Write a method duplicate to find the repeated or duplicate elements in an array. This method should return a list of repeated integers in a string with the elements sorted in ascending order (as illustrated below). 6 | 7 | duplicate({1,3,4,2,1}) --> "[1]" 8 | 9 | duplicate({1,3,4,2,1,2,4}) --> "[1, 2, 4]" 10 | 11 | Note: You may use toString() method to return the standard string representation of most data structures, and Arrays.sort() to sort your result. 12 | 13 | ## Notes -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/ReverseAString/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Reverse A String", 4 | "origin": { 5 | "name": "Firecode", 6 | "link": "https://www.firecode.io/" 7 | }, 8 | "companies": [ 9 | "Microsoft", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Level1", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Strings" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/Firecode/src/Problems/Level1/ReverseAString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Write a method that takes in a String and returns the reversed version of the String. 6 | 7 | Examples: 8 | 9 | ```plaintext 10 | reverseString("abcde") -> "edcba" 11 | reverseString("1") -> "1" 12 | reverseString("") -> "" 13 | reverse("madam") -> "madam" 14 | reverse(null) -> null 15 | ``` 16 | 17 | ## Notes -------------------------------------------------------------------------------- /src/FreeCodeCamp/src/Curriculum/CodingInterviewPrep/Algorithms/.gitkeep: -------------------------------------------------------------------------------- 1 | https://learn.freecodecamp.org/coding-interview-prep/algorithms -------------------------------------------------------------------------------- /src/GeeksForGeeks/src/Algorithms/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/GeeksForGeeks/src/Algorithms/.gitkeep -------------------------------------------------------------------------------- /src/GeeksForGeeks/src/DataStructures/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/GeeksForGeeks/src/DataStructures/.gitkeep -------------------------------------------------------------------------------- /src/GeeksForGeeks/src/DataStructuresAndAlgorithms/Graph/GraphCycle/DetectCycleInADirectedGraph/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/detect-cycle-in-a-graph/ -------------------------------------------------------------------------------- /src/GeeksForGeeks/src/DataStructuresAndAlgorithms/Graph/GraphCycle/DetectCycleInAnUndirectedGraph/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/detect-cycle-undirected-graph/ -------------------------------------------------------------------------------- /src/GeeksForGeeks/src/DataStructuresAndAlgorithms/Graph/GraphCycle/DisjointSetOrUnionFind_Set1/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/union-find/ 2 | https://www.youtube.com/watch?v=n_t0a_8H8VY -------------------------------------------------------------------------------- /src/GitHubRepository/BillRyan/src/AlgorithmExercise/Part1_Basics/BasicDataStructure/BinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package GitHubRepository.BillRyan.src.AlgorithmExercise.Part1_Basics.BasicDataStructure.BinaryTree.Java; 2 | 3 | class TreeNode { 4 | public int val; 5 | public TreeNode left, right; 6 | public TreeNode(int val) { 7 | this.val = val; 8 | this.left = null; 9 | this.right = null; 10 | } 11 | } -------------------------------------------------------------------------------- /src/GitHubRepository/BillRyan/src/AlgorithmExercise/Part1_Basics/BasicDataStructure/BinaryTree/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/GitHubRepository/BillRyan/src/AlgorithmExercise/Part1_Basics/BasicDataStructure/LinkedList/Java/DListNode.java: -------------------------------------------------------------------------------- 1 | package GitHubRepository.BillRyan.src.AlgorithmExercise.Part1_Basics.BasicDataStructure.LinkedList.Java; 2 | 3 | public class DListNode { 4 | int val; 5 | DListNode prev, next; 6 | DListNode(int val) { 7 | this.val = val; 8 | this.prev = this.next = null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/GitHubRepository/BillRyan/src/AlgorithmExercise/Part1_Basics/BasicDataStructure/LinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package GitHubRepository.BillRyan.src.AlgorithmExercise.Part1_Basics.BasicDataStructure.LinkedList.Java; 2 | 3 | class ListNode { 4 | public int val; 5 | public ListNode next; 6 | public ListNode(int val) { 7 | this.val = val; 8 | this.next = null; 9 | } 10 | } -------------------------------------------------------------------------------- /src/GitHubRepository/BillRyan/src/AlgorithmExercise/Part1_Basics/BasicDataStructure/LinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/GitHubRepository/JerAguilon/src/TechnicalInterviewCodeSnippets/.gitkeep: -------------------------------------------------------------------------------- 1 | https://github.com/JerAguilon/TechnicalInterviewCodeSnippets 2 | https://jeremyaguilon.me/blog/visualizing_four_key_interview_algorithms 3 | 4 | https://jeremyaguilon.me/blog/a_collection_of_whiteboard_interview_templates 5 | 6 | https://jeremyaguilon.me/blog/ranking_interview_questions_by_cram_score -------------------------------------------------------------------------------- /src/GitHubRepository/YangshunTay/src/TechInterviewHandbook/.gitkeep: -------------------------------------------------------------------------------- 1 | https://github.com/yangshun/tech-interview-handbook -------------------------------------------------------------------------------- /src/GitHubRepository/checkcheckzz/system-design-interview/readme.md: -------------------------------------------------------------------------------- 1 | # System Design Interview 2 | -------------------------------------------------------------------------------- /src/GitHubRepository/knaidu/src/problem-solving/.gitkeep: -------------------------------------------------------------------------------- 1 | https://github.com/knaidu/problem-solving -------------------------------------------------------------------------------- /src/GitHubRepository/mission-peace/src/interview/.gitkeep: -------------------------------------------------------------------------------- 1 | https://github.com/mission-peace/interview -------------------------------------------------------------------------------- /src/Glassdoor/src/Facebook/NumberOfStringsFromEncodedAlphabet/Python/test_solution.py: -------------------------------------------------------------------------------- 1 | import solution 2 | import unittest 3 | 4 | 5 | class TrivialCase(unittest.TestCase): 6 | def test_trivial_case_1(self): 7 | """trivial case 1""" 8 | expected = (13, [2, 3, 23, 4, 1, 3, 13, 2, 5, 25, 9, 8, 2]) 9 | sol = solution.Solution() 10 | actual = sol.find_strings(23413259802) 11 | self.assertEqual(expected, actual) 12 | 13 | 14 | if __name__ == "__main__": 15 | unittest.main() -------------------------------------------------------------------------------- /src/Glassdoor/src/Facebook/NumberOfStringsFromEncodedAlphabet/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Number Of Strings From Encoded Alphabet", 4 | "origin": { 5 | "name": "Glassdoor", 6 | "link": "https://www.glassdoor.com/Interview/Given-the-alphabet-encoded-as-numbers-e-g-a-1-b-2-z-26-and-a-sequence-of-numbers-e-g-23413259802-how-man-QTN_1992899.htm" 7 | }, 8 | "companies": [ 9 | "Facebook", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Strings" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/Glassdoor/src/Facebook/NumberOfStringsFromEncodedAlphabet/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given the alphabet encoded as numbers (e.g., a=1, b=2, ..., z=26), and a sequence of numbers (e.g., "23413259802"), how many strings can be generated. 6 | 7 | ## Notes -------------------------------------------------------------------------------- /src/GoogleCodingCompetitions/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://codingcompetitions.withgoogle.com/ -------------------------------------------------------------------------------- /src/GoogleCodingCompetitions/src/codejam/.gitkeep: -------------------------------------------------------------------------------- 1 | https://code.google.com/codejam/past-contests -------------------------------------------------------------------------------- /src/GoogleCodingCompetitions/src/hashcode/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/GoogleCodingCompetitions/src/hashcode/.gitkeep -------------------------------------------------------------------------------- /src/GoogleCodingCompetitions/src/kickstart/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/GoogleCodingCompetitions/src/kickstart/.gitkeep -------------------------------------------------------------------------------- /src/GoogleTechDevGuide/.gitkeep: -------------------------------------------------------------------------------- 1 | https://techdevguide.withgoogle.com/ -------------------------------------------------------------------------------- /src/HackerEarth/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/HackerEarth/src/.gitkeep -------------------------------------------------------------------------------- /src/HackerRank/src/Contests/RookieRank2/MigratoryBirds/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Contests/RookieRank2/MinimumAbsoluteDifferenceInAnArray/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Miscellaneous/DamDesign/Python/solution.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def method(self): 3 | 4 | def main(): 5 | solution = Solution() 6 | 7 | if __name__ == '__main__': 8 | main() -------------------------------------------------------------------------------- /src/HackerRank/src/Miscellaneous/DamDesign/Python/test_solution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/HackerRank/src/Miscellaneous/DamDesign/Python/test_solution.py -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/InterviewPreparationKit/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.hackerrank.com/interview/interview-preparation-kit -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/AVeryBigSum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/CircularArrayRotation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes 6 | 7 | 1. [StackExchange post](http://codereview.stackexchange.com/questions/145643/circular-array-rotation-java) 8 | 1. [Geeks for Geeks post](http://www.geeksforgeeks.org/array-rotation/) -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/CompareTheTriplets/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/DiagonalDifference/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/PlusMinus/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/SimpleArraySum/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.ProblemSolving.Algorithms.Warmup.SimpleArraySum.Java; 2 | 3 | import java.util.*; 4 | 5 | public class Solution { 6 | 7 | public static void main(String[] args) { 8 | Scanner scan = new Scanner(System.in); 9 | int num = scan.nextInt(); 10 | int res = 0; 11 | while (num-- > 0){ 12 | res = res + scan.nextInt(); 13 | } 14 | System.out.println(res); 15 | scan.close(); 16 | } 17 | } -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/SimpleArraySum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/SolveMeFirst/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/Staircase/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/Algorithms/Warmup/TimeConversion/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/DataStructures/Arrays/Arrays_DS/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/DataStructures/Arrays/TwoDArray_DS/readme.md: -------------------------------------------------------------------------------- 1 | # 2DArray_DS 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/DataStructures/LinkedLists/ReverseALinkedList/Java/Node.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.ProblemSolving.DataStructures.LinkedLists.ReverseALinkedList.Java; 2 | 3 | public class Node { 4 | int data; 5 | public Node next; 6 | Node(int d) { 7 | data = d; 8 | next = null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/DataStructures/LinkedLists/ReverseALinkedList/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.ProblemSolving.DataStructures.LinkedLists.ReverseALinkedList.Java; 2 | 3 | public class Solution { 4 | Node Reverse(Node head) { 5 | Node prev = null; 6 | while (head != null) { 7 | Node next = head.next; 8 | head.next = prev; 9 | prev = head; 10 | head = next; 11 | } 12 | return prev; 13 | } 14 | } -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/ProblemSolving/DataStructures/LinkedLists/ReverseALinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes 6 | 7 | Reverse a linked list and return pointer to the head 8 | The input list will have at least one element 9 | Node is defined as 10 | class Node { 11 | int data; 12 | Node next; 13 | } 14 | 15 | This is a "method-only" submission. 16 | You only need to complete this method. -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D0_HelloWorld/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D10_BinaryNumbers/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D11_2DArrays/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D12_Inheritance/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D13_AbstractClasses/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D14_Scope/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D15_LinkedList/Java/Node.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.Tutorials.ThirtyDaysOfCode.D15_LinkedList.Java; 2 | 3 | public class Node { 4 | int data; 5 | public Node next; 6 | Node(int d) { 7 | data = d; 8 | next = null; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D15_LinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D16_Exceptions_StringToInteger/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.Tutorials.ThirtyDaysOfCode.D16_Exceptions_StringToInteger.Java; 2 | 3 | import java.util.*; 4 | 5 | public class Solution { 6 | 7 | public static void main(String[] args) { 8 | Scanner in = new Scanner(System.in); 9 | String S = in.next(); 10 | try{ 11 | System.out.println(Integer.parseInt(S)); 12 | } 13 | catch(Exception ex){ 14 | System.out.println("Bad String"); 15 | } 16 | in.close(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D16_Exceptions_StringToInteger/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D17_MoreExceptions/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D18_QueuesAndStacks/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D19_Interfaces/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D1_DataTypes/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D20_Sorting/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D21_Generics/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D22_BinarySearchTrees/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D23_BSTLevelOrderTraversal/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D24_MoreLinkedLists/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D25_RunningTimeAndComplexity/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D26_NestedLogic/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D27_Testing/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D28_RegExPatternsAndIntroToDatabases/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D29_BitwiseAND/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D2_Operators/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D3_IntroToConditionalStatements/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D4_ClassVsInstance/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D5_Loops/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package HackerRank.src.Tracks.Tutorials.ThirtyDaysOfCode.D5_Loops.Java; 2 | 3 | import java.util.*; 4 | 5 | public class Solution { 6 | 7 | public static void main(String[] args) { 8 | Scanner in = new Scanner(System.in); 9 | int n = in.nextInt(); 10 | for (int i=1; i<=10; i++){ 11 | System.out.println(n + " x " + i + " = " + n*i); 12 | } 13 | in.close(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D5_Loops/readme.md: -------------------------------------------------------------------------------- 1 | # D5 Loops 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D6_LetsReview/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D7_Arrays/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D8_DictionariesAndMaps/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HackerRank/src/Tracks/Tutorials/ThirtyDaysOfCode/D9_Recursion/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/HiredInTech/Courses/AlgorithmDesign/2-AlgorithmDesignCanvas/2-WhatIsTheCanvas/the-algorithm-design-canvas.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/HiredInTech/Courses/AlgorithmDesign/2-AlgorithmDesignCanvas/2-WhatIsTheCanvas/the-algorithm-design-canvas.pdf -------------------------------------------------------------------------------- /src/HiredInTech/Courses/AlgorithmDesign/2-AlgorithmDesignCanvas/3-TaskConstraints/the-common-constraints-handout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/HiredInTech/Courses/AlgorithmDesign/2-AlgorithmDesignCanvas/3-TaskConstraints/the-common-constraints-handout.pdf -------------------------------------------------------------------------------- /src/HiredInTech/Courses/AlgorithmDesign/Introduction/TestPracticeTask_a-plus-b: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public static int compute_sum(int a, int b) { 3 | // Write your solution here 4 | 5 | // This method will be called like that: 6 | 7 | // Solution solution = new Solution(); 8 | 9 | // solution.compute_sum(500, -5); 10 | 11 | return a+b; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/HiredInTech/Courses/SystemDesign/readme.md: -------------------------------------------------------------------------------- 1 | https://www.hiredintech.com/courses/system-design -------------------------------------------------------------------------------- /src/HiredInTech/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/HiredInTech/src/.gitkeep -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level1_TimeComplexity/Problems/BasicPrimer/choose4/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | What does it mean when we say that an algorithm X is asymptotically more efficient than Y? 6 | 7 | ### Choices 8 | 9 | * X will always be a better choice for all inputs 10 | * X will always be a better choice for large inputs 11 | * X will always be a better choice for small inputs 12 | * Y will always be a better choice for small inputs 13 | 14 | ### Answer 15 | 16 | X will always be a better choice for large inputs 17 | 18 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level1_TimeComplexity/Problems/BasicPrimer/nested_cmpl2/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | What is the time complexity of the following code : 6 | 7 | ```plaintext 8 | int a = 0; 9 | for (i = 0; i < N; i++) { 10 | for (j = N; j > i; j--) { 11 | a = a + i + j; 12 | } 13 | } 14 | ``` 15 | 16 | ### Choices 17 | 18 | * O(N) 19 | * O(N*log(N)) 20 | * O(N * Sqrt(N)) 21 | * O(N*N) 22 | 23 | ### Answer 24 | 25 | O(N*N) 26 | 27 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level1_TimeComplexity/Problems/CompareFunctions/choose2/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Which of the given options provides the increasing order of complexity of functions f1, f2, f3 and f4: 6 | 7 | ```plaintext 8 | f1(n) = 2^n 9 | 10 | f2(n) = n^(3/2) 11 | 12 | f3(n) = nLogn 13 | 14 | f4(n) = n^(Logn) 15 | ``` 16 | 17 | ### Choices 18 | 19 | * f3, f2, f4, f1 20 | * f3, f2, f1, f4 21 | * f2, f3, f1, f4 22 | * f2, f3, f4, f1 23 | 24 | ### Answer 25 | 26 | f3, f2, f4, f1 27 | 28 | Look at the values for functions for very large value of n. 29 | 30 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level1_TimeComplexity/Problems/Math/while_cmpl/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | What is the time complexity of the following code : 6 | 7 | ```plaintext 8 | int a = 0, i = N; 9 | while (i > 0) { 10 | a += i; 11 | i /= 2; 12 | } 13 | ``` 14 | 15 | ### Choices 16 | 17 | * O(N) 18 | * O(Sqrt(N)) 19 | * O(N / 2) 20 | * O(log N) 21 | * O(log(log N)) 22 | 23 | ### Answer 24 | 25 | O(log N) 26 | 27 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Examples/SpiralOrderMatrix1/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a matrix of m * n elements (m rows, n columns), return all elements of the matrix in spiral order. 6 | 7 | **Example:** 8 | 9 | Given the following matrix: 10 | 11 | ```plaintext 12 | [ 13 | [ 1, 2, 3 ], 14 | [ 4, 5, 6 ], 15 | [ 7, 8, 9 ] 16 | ] 17 | ``` 18 | 19 | You should return 20 | 21 | ```plaintext 22 | [1, 2, 3, 6, 9, 8, 7, 4, 5] 23 | ``` 24 | 25 | ## Notes 26 | 27 | 1. [YT Video - MyCodeSchool - Print 2-D array in spiral order](https://www.youtube.com/watch?v=siKFOI8PNKM) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Primers/ArrayBug/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Rotate the array A by B positions. 6 | 7 | So, for example, 8 | 9 | ```plaintext 10 | A : [1 2 3 4 5 6] 11 | B : 1 12 | ``` 13 | 14 | The output 15 | 16 | ```plaintext 17 | [2 3 4 5 6 1] 18 | ``` 19 | 20 | ## Notes 21 | 22 | 1. [YT Video - Vivekanand Khyade - ROTATION of an array (REVERSAL Algorithm)](https://www.youtube.com/watch?v=EpP6YuqzHe8) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Problems/Arrangement/LargestNumber/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a list of non negative integers, arrange them such that they form the largest number. 6 | 7 | For example: 8 | 9 | Given [3, 30, 34, 5, 9], the largest formed number is 9534330. 10 | 11 | Note: The result may be very large, so you need to return a string instead of an integer. 12 | 13 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Problems/MissingOrRepeatedNumber/FirstMissingInteger/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an unsorted integer array, find the first missing positive integer. 6 | 7 | Example: 8 | 9 | Given 10 | 11 | [1,2,0] return 3, 12 | [3,4,-1,1] return 2, 13 | [-8, -7, -6] returns 1 14 | 15 | Your algorithm should run in O(n) time and use constant space. 16 | 17 | ## Notes 18 | 19 | 1. [Geeks for Geeks - Find the smallest positive number missing from an unsorted array | Set 1](https://www.geeksforgeeks.org/find-the-smallest-positive-number-missing-from-an-unsorted-array/) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Problems/SimulationArray/SpiralOrderMatrix2/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. 6 | 7 | Example: 8 | 9 | Given n = 3, 10 | 11 | You should return the following matrix: 12 | 13 | ```plaintext 14 | [ 15 | [ 1, 2, 3 ], 16 | [ 8, 9, 4 ], 17 | [ 7, 6, 5 ] 18 | ] 19 | ``` 20 | 21 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/Problems/ValueRanges/MergeIntervals/Java/Interval.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level2_Arrays.Problems.ValueRanges.MergeIntervals.Java; 2 | 3 | public class Interval { 4 | int start; 5 | int end; 6 | Interval() { start = 0; end = 0; } 7 | Interval(int s, int e) { start = s; end = e; } 8 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/SortingAlgorithms/BubbleSort/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/SortingAlgorithms/InsertionSort/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/SortingAlgorithms/MergeSort/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/SortingAlgorithms/QuickSort/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Arrays/SortingAlgorithms/SelectionSort/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Examples/AllFactors/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a number N, find all factors of N. 6 | 7 | Example: 8 | 9 | N = 6 10 | 11 | factors = {1, 2, 3, 6} 12 | 13 | Make sure the returned array is sorted. 14 | 15 | ## Notes 16 | 17 | 1. [StackOverflow - Finding factors of a given integer](https://stackoverflow.com/questions/8647059/finding-factors-of-a-given-integer) 18 | 19 | In order to find the factors of 6, you only need to check till 2.45 (√6). The factors of 6 will be 1 and 2, and their converse numbers, i.e. 3 and 6. -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Examples/BinaryRepresentation/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a number N >= 0, find its representation in binary. 6 | 7 | Example: 8 | 9 | if N = 6, 10 | 11 | binary form = 110 12 | 13 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Examples/VerifyPrime/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a number N, verify if N is prime or not. 6 | 7 | Return 1 if N is prime, else return 0. 8 | 9 | Example : 10 | 11 | Input : 7 12 | 13 | Output : True 14 | 15 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Primers/Math_Bug01/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Following code tries to figure out if a number is prime [Wiki](https://www.wikiwand.com/en/Prime_number). However, it has a bug in it. Please correct the bug and then submit the code. 6 | 7 | ```Java 8 | public class Solution { 9 | public int isPrime(int A) { 10 | int upperLimit = (int)(Math.sqrt(A)); 11 | for (int i = 2; i <= upperLimit; i++) { 12 | if (i < A && A % i == 0) return 0; 13 | } 14 | return 1; 15 | } 16 | } 17 | ``` 18 | 19 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Problems/BaseConversion/ExcelColumnTitle/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a positive integer, return its corresponding column title as appear in an Excel sheet. 6 | 7 | For example: 8 | 9 | ```test 10 | 1 -> A 11 | 2 -> B 12 | 3 -> C 13 | ... 14 | 26 -> Z 15 | 27 -> AA 16 | 28 -> AB 17 | ``` 18 | 19 | ## Notes 20 | 21 | This is just like base 26 number conversion. 22 | 23 | Think of it like this. How would you convert a number to binary ? Can you apply the same principle here now that the base is different ? -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level2_Math/Problems/NumberTheory/GreatestCommonDivisor/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level2_Math.Problems.NumberTheory.GreatestCommonDivisor.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | System.out.println(gcd(4, 16)); 6 | } 7 | 8 | public static int gcd(int A, int B) { 9 | if (B == 0) { 10 | return A; 11 | } 12 | return gcd(B, A % B); 13 | } 14 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_BinarySearch/Examples/FindElementOccurrence/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a sorted array of integers, find the number of occurrences of a given target value. Your algorithm’s runtime complexity must be in the order of O(log n). If the target is not found in the array, return 0 6 | 7 | **Example:** 8 | 9 | Given [5, 7, 7, 8, 8, 10] and target value 8, return 2. 10 | 11 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_BinarySearch/Problems/SearchAnswer/SquareRootOfInteger/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Implement int sqrt(int x). 6 | 7 | Compute and return the square root of x. 8 | 9 | If x is not a perfect square, return floor(sqrt(x)) 10 | 11 | Example : 12 | 13 | Input : 11 14 | Output : 3 15 | DO NOT USE SQRT FUNCTION FROM STANDARD LIBRARY 16 | 17 | ## Notes 18 | 19 | 1. [SO Post](https://stackoverflow.com/questions/3766020/binary-search-to-compute-square-root-java) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_BinarySearch/Problems/SimpleBinarySearch/SearchForARange/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a sorted array of integers, find the starting and ending position of a given target value. 6 | 7 | Your algorithm’s runtime complexity must be in the order of O(log n). 8 | 9 | If the target is not found in the array, return [-1, -1]. 10 | 11 | Example: 12 | 13 | Given [5, 7, 7, 8, 8, 10] 14 | 15 | and target value 8, 16 | 17 | return [3, 4]. 18 | 19 | ## Notes 20 | 21 | 1. [Life in Code](http://www.lifeincode.net/programming/leetcode-search-for-a-range-java/) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_BitManipulation/Problems/Bucketing/MinXorValue/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an array of N integers, find the pair of integers in the array which have minimum XOR value. Report the minimum XOR value. 6 | 7 | Examples: 8 | 9 | **Input:** 0 2 5 7 10 | 11 | **Output:** 2 (0 XOR 2) 12 | 13 | **Input:** 0 4 7 9 14 | 15 | **Output:** 3 (4 XOR 7) 16 | 17 | **Constraints:** 2 <= N <= 100 000, 0 <= A[i] <= 1 000 000 000 18 | 19 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_Strings/Problems/StringMath/RomanToInteger/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a roman numeral, convert it to an integer. 6 | 7 | Input is guaranteed to be within the range from 1 to 3999. 8 | 9 | Read more details about roman numerals at Roman Numeric System 10 | 11 | Example : 12 | 13 | Input : "XIV" 14 | Return : 14 15 | 16 | Input : "XX" 17 | Output : 20 18 | 19 | ## Notes 20 | 21 | 1. [SO post](https://stackoverflow.com/questions/9073150/converting-roman-numerals-to-decimal) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_Strings/Problems/StringSimulation/PalindromeString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 6 | 7 | Example: 8 | 9 | "A man, a plan, a canal: Panama" is a palindrome. 10 | 11 | "race a car" is not a palindrome. 12 | 13 | Return 0 / 1 ( 0 for false, 1 for true ) for this problem 14 | 15 | ## Notes 16 | 17 | 1. [blog - java artifacts](http://www.javaartifacts.com/efficient-way-check-string-palindrome/) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_Strings/Problems/Words/ReverseTheString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an input string, reverse the string word by word. 6 | 7 | Example: 8 | 9 | Given s = "the sky is blue", 10 | 11 | return "blue is sky the". 12 | 13 | A sequence of non-space characters constitutes a word. 14 | Your reversed string should not contain leading or trailing spaces, even if it is present in the input string. 15 | If there are multiple spaces between words, reduce them to a single space in the reversed string. 16 | 17 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level3_TwoPointers/Problems/Sorting/ThreeSum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. 6 | Return the sum of the three integers. 7 | 8 | Assume that there will only be one solution 9 | 10 | Example: 11 | given array S = {-1 2 1 -4}, 12 | and target = 1. 13 | 14 | The sum that is closest to the target is 2. (-1 + 2 + 1 = 2) 15 | 16 | ## Notes 17 | 18 | 1. [ProgramCreek](https://www.programcreek.com/2013/02/leetcode-3sum-closest-java/) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Examples/IntersectionOfLinkedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Examples.IntersectionOfLinkedLists.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Examples/ReverseLinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Examples.ReverseLinkedList.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Examples/ReverseLinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Reverse a linked list. Do it in-place and in one-pass. 6 | 7 | For example: 8 | 9 | Given 1->2->3->4->5->NULL, 10 | 11 | return 5->4->3->2->1->NULL. 12 | 13 | ## Notes 14 | 15 | 1. [MyCodeSchool video](https://www.youtube.com/watch?v=sYcOK51hl-A) 16 | 1. [LeetCode discussion](https://leetcode.com/problems/reverse-linked-list/discuss/58125) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/List2Pointer/ReverseLinkList2/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Problems.List2Pointer.ReverseLinkList2.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListCycle/ListCycle/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Problems.ListCycle.ListCycle.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListMath/AddTwoNumbersAsLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Problems.ListMath.AddTwoNumbersAsLists.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListSort/InsertionSortList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Problems.ListSort.InsertionSortList.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListSort/InsertionSortList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Sort a linked list using insertion sort. 6 | 7 | We have explained Insertion Sort at Slide 7 of Arrays 8 | 9 | [Insertion Sort Wiki](http://en.wikipedia.org/wiki/Insertion_sort#Algorithm) has some details on Insertion Sort as well. 10 | 11 | Example : 12 | 13 | Input : 1 -> 3 -> 2 14 | 15 | Return 1 -> 2 -> 3 16 | 17 | ## Notes 18 | 19 | 1. [LeetCode discussion](https://discuss.leetcode.com/topic/8570/an-easy-and-clear-way-to-sort-o-1-space) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListTrick/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/ListTrick/.gitkeep -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/PointerMove/ReorderList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level4_LinkedLists.Problems.PointerMove.ReorderList.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_LinkedLists/Problems/PointerMove/ReorderList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a singly linked list 6 | 7 | L: L0 → L1 → … → Ln-1 → Ln, 8 | 9 | reorder it to: 10 | 11 | L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 12 | 13 | You must do this in-place without altering the nodes’ values. 14 | 15 | For example, Given {1,2,3,4}, reorder it to {1,4,2,3}. 16 | 17 | ## Notes 18 | 19 | 1. [YT Video - Jieun Chon - Reorder List | Interview Practice | Linked List](https://www.youtube.com/watch?v=feRbQevuKZs) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Examples/ReverseString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string S, reverse the string using stack. 6 | 7 | Example : 8 | 9 | Input : "abc" 10 | 11 | Return "cba" 12 | 13 | ## Notes 14 | 15 | 1. [CodeSchool video](https://www.youtube.com/watch?v=hNP72JdOIgY) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Problems/CleverStack/LargestRectangleInHistogram/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Problems/CleverStack/LargestRectangleInHistogram/1.png -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Problems/CleverStack/LargestRectangleInHistogram/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Problems/CleverStack/LargestRectangleInHistogram/2.png -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level4_StacksAndQueues/Problems/StackSimple/RedundantBraces/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Write a program to validate if the input string has redundant braces? 6 | Return 0/1 7 | 8 | ```plaintext 9 | 0 -> NO 10 | 1 -> YES 11 | ``` 12 | 13 | Input will be always a valid expression 14 | 15 | and operators allowed are only + , * , - , / 16 | 17 | Example: 18 | 19 | ```plaintext 20 | ((a + b)) has redundant braces so answer will be 1 21 | (a + (a + b)) doesn't have have any redundant braces so answer will be 0 22 | ``` 23 | 24 | ## Notes -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level5_Backtracking/Examples/ReverseLinkedListRecursion/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level5_Backtracking.Examples.ReverseLinkedListRecursion.Java; 2 | 3 | /** 4 | * Definition for singly-linked list. 5 | */ 6 | public class ListNode { 7 | public int val; 8 | public ListNode next; 9 | ListNode(int x) { val = x; next = null; } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level5_Backtracking/Examples/ReverseLinkedListRecursion/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Reverse a linked list using recursion. 6 | 7 | Example : 8 | 9 | Given `1->2->3->4->5->NULL`, return `5->4->3->2->1->NULL`. 10 | 11 | ## Notes 12 | 13 | 1. [CodeSchool video](https://www.youtube.com/watch?v=KYH83T4q6Vs) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level5_Hashing/Problems/HashingTwoPointer/WindowString/Python/test_solution.py: -------------------------------------------------------------------------------- 1 | import solution 2 | import unittest 3 | 4 | class TrivialCase(unittest.TestCase): 5 | def testTrivialCase1(self): 6 | """"trivial case 1""" 7 | expected = "BANC" 8 | sol = solution.Solution() 9 | actual = sol.minWindow("ADOBECODEBANC", "ABC") 10 | self.assertEqual(expected, actual) 11 | 12 | if __name__ == "__main__": 13 | unittest.main() -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level5_Hashing/Problems/MathsAndHashing/PointsOnTheStraightLine/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 6 | 7 | Sample Input : 8 | 9 | ```plaintext 10 | (1, 1) 11 | (2, 2) 12 | ``` 13 | 14 | Sample Output: 2 15 | 16 | You will be give 2 arrays X and Y. Each point is represented by (X[i], Y[i]) 17 | 18 | ## Notes 19 | 20 | 1. [LeetCode discussion](https://leetcode.com/problems/max-points-on-a-line/discuss/47113/A-java-solution-with-notes) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_HeapsAndMaps/Problems/Heap/MergeKSortedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_HeapsAndMaps.Problems.Heap.MergeKSortedLists.Java; 2 | 3 | class ListNode { 4 | public int val; 5 | public ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; next = null; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_HeapsAndMaps/Problems/Heapmap/LruCache/Java/Node.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_HeapsAndMaps.Problems.Heapmap.LruCache.Java; 2 | 3 | class Node { 4 | int key; 5 | int value; 6 | Node pre; 7 | Node next; 8 | 9 | public Node(int key, int value) { 10 | this.key = key; 11 | this.value = value; 12 | } 13 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Examples/NextGreaterNumberBst/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Examples.NextGreaterNumberBst.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Examples/ValidBinarySearchTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Examples.ValidBinarySearchTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/BstTraversal/BstIterator/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.BstTraversal.BstIterator.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/BstTraversal/KthSmallestElementInTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.BstTraversal.KthSmallestElementInTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/BstTraversal/RecoverBinarySearchTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.BstTraversal.RecoverBinarySearchTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/BstTraversal/TwoSumBinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.BstTraversal.TwoSumBinaryTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/InPlaceChange/InvertTheBinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.InPlaceChange.InvertTheBinaryTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/LevelOrder/ZigZagLevelOrderTraversalBt/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.LevelOrder.ZigZagLevelOrderTraversalBt.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/SimpleTreeOps/BalancedBinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.SimpleTreeOps.BalancedBinaryTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/InOrderTraversal/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.Traversal.InOrderTraversal.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/PostOrderTraversal/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.Traversal.PostOrderTraversal.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/PreOrderTraversal/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.Traversal.PreOrderTraversal.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/VerticalOrderTraversalOfBinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.Traversal.VerticalOrderTraversalOfBinaryTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/VerticalOrderTraversalOfBinaryTree/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Traversal/VerticalOrderTraversalOfBinaryTree/img1.png -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/TreeConstruction/BinaryTreeFromInorderAndPostorder/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.TreeConstruction.BinaryTreeFromInorderAndPostorder.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/TreeConstruction/ConstructBinaryTreeFromInorderAndPreorder/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.TreeConstruction.ConstructBinaryTreeFromInorderAndPreorder.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/TreeConstruction/SortedArrayToBalancedBst/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.TreeConstruction.SortedArrayToBalancedBst.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/Tries/HotelReviews/Java/TrieNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.Tries.HotelReviews.Java; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class TrieNode { 7 | 8 | Map children; 9 | boolean endOfWord; 10 | int count; 11 | 12 | TrieNode() { 13 | children = new HashMap<>(); 14 | endOfWord = false; 15 | count = 1; 16 | } 17 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/TwoTrees/IdenticalBinaryTrees/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.TwoTrees.IdenticalBinaryTrees.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/Problems/TwoTrees/SymmetricBinaryTree/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level6_Trees.Problems.TwoTrees.SymmetricBinaryTree.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level6_Trees/readme.md: -------------------------------------------------------------------------------- 1 | # Trees 2 | 3 | [YT - Derek Banas - Java Binary Search Tree](https://www.youtube.com/watch?v=M6lYob8STMI) 4 | [YT - CodeSchool - Binary search tree - Implementation in C/C++](https://www.youtube.com/watch?v=COZK7NATh4k) 5 | 6 | https://www.geeksforgeeks.org/red-black-tree-set-1-introduction-2/ 7 | https://www.geeksforgeeks.org/avl-tree-set-1-insertion/ -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level7_Greedy/Problems/Bucket5/HighestProduct/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an array of integers, return the highest product possible by multiplying 3 numbers from the array 6 | 7 | **Input:** 8 | 9 | ```plaintext 10 | array of integers e.g {1, 2, 3} 11 | ``` 12 | 13 | NOTE: Solution will fit in a 32-bit signed integer. 14 | 15 | **Example:** 16 | 17 | ```plaintext 18 | [0, -1, 3, 100, 70, 50] 19 | 20 | => 70*50*100 = 350000 21 | ``` 22 | 23 | ## Notes 24 | 25 | 1. [angshukutu - InterviewBit: Greedy](https://angshukutu.wordpress.com/2016/02/20/interviewbit-greedy/) -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level8_Graphs/Problems/GraphAdHoc/ConvertSortedListToBinarySearchTree/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level8_Graphs.Problems.GraphAdHoc.ConvertSortedListToBinarySearchTree.Java; 2 | 3 | class ListNode { 4 | public int val; 5 | public ListNode next; 6 | ListNode(int x) { val = x; next = null; } 7 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level8_Graphs/Problems/GraphHashing/CloneGraph/Java/UndirectedGraphNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level8_Graphs.Problems.GraphHashing.CloneGraph.Java; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | class UndirectedGraphNode { 7 | int label; 8 | List neighbors; 9 | UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList(); } 10 | }; -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level8_Graphs/Problems/ShortestPath/WordLadder1/Java/WordNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level8_Graphs.Problems.ShortestPath.WordLadder1.Java; 2 | 3 | public class WordNode { 4 | String word; 5 | int numSteps; 6 | WordNode pre; 7 | public WordNode(String word, int numSteps, WordNode pre) { 8 | this.word = word; 9 | this.numSteps = numSteps; 10 | this.pre = pre; 11 | } 12 | public WordNode(String word, int numSteps) { 13 | this.word = word; 14 | this.numSteps = numSteps; 15 | } 16 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Programming/Level8_Graphs/Problems/ShortestPath/WordLadder2/Java/WordNode.java: -------------------------------------------------------------------------------- 1 | package InterviewBit.src.Courses.Programming.Level8_Graphs.Problems.ShortestPath.WordLadder2.Java; 2 | 3 | public class WordNode { 4 | String word; 5 | int numSteps; 6 | WordNode pre; 7 | public WordNode(String word, int numSteps, WordNode pre) { 8 | this.word = word; 9 | this.numSteps = numSteps; 10 | this.pre = pre; 11 | } 12 | public WordNode(String word, int numSteps) { 13 | this.word = word; 14 | this.numSteps = numSteps; 15 | } 16 | } -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/Puzzles/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/Puzzles/.gitkeep -------------------------------------------------------------------------------- /src/InterviewBit/src/Courses/SystemDesign/Level1_StorageScalability/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewBit/src/Courses/SystemDesign/Level1_StorageScalability/.gitkeep -------------------------------------------------------------------------------- /src/InterviewCake/src/Questions/BracketValidator/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "29. Bracket Validator", 4 | "origin": { 5 | "name": "InterviewCake", 6 | "link": "https://www.interviewcake.com/question/java/bracket-validator" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Questions", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Stacks", 20 | "" 21 | ], 22 | "buckets": [ 23 | "", 24 | "" 25 | ] 26 | } -------------------------------------------------------------------------------- /src/InterviewCake/src/Questions/KthToLastNodeInSinglyLinkedList/Java/LinkedListNode.java: -------------------------------------------------------------------------------- 1 | package InterviewCake.src.Questions.KthToLastNodeInSinglyLinkedList.Java; 2 | 3 | class LinkedListNode { 4 | public String value; 5 | public LinkedListNode next; 6 | 7 | public LinkedListNode(String value) { 8 | this.value = value; 9 | } 10 | } -------------------------------------------------------------------------------- /src/InterviewCake/src/Questions/KthToLastNodeInSinglyLinkedList/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "25. Kth to Last Node in a Singly-Linked List", 4 | "origin": { 5 | "name": "InterviewCake", 6 | "link": "https://www.interviewcake.com/question/java/kth-to-last-node-in-singly-linked-list" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Questions", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Linked List" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/InterviewCake/src/Questions/MergeSortedArrays/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "43. Merge Sorted Arrays", 4 | "origin": { 5 | "name": "InterviewCake", 6 | "link": "https://www.interviewcake.com/question/java/merge-sorted-arrays" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "Questions", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "Arrays" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/InterviewCake/src/Questions/SecondLargestItemInBst/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "10. Second Largest Item In Bst", 4 | "origin": { 5 | "name": "InterviewCake", 6 | "link": "www.interviewcake.com/question/java/second-largest-item-in-bst" 7 | }, 8 | "companies": [], 9 | "categories": [ 10 | { 11 | "name": "Questions", 12 | "children": [] 13 | } 14 | ], 15 | "tags": [ 16 | "Binary Search Tree" 17 | ], 18 | "buckets": [] 19 | } -------------------------------------------------------------------------------- /src/InterviewingIo/src/DataStructuresAlgorithmsCoding/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/InterviewingIo/src/DataStructuresAlgorithmsCoding/.gitkeep -------------------------------------------------------------------------------- /src/Kattis/.gitkeep: -------------------------------------------------------------------------------- 1 | https://open.kattis.com/ -------------------------------------------------------------------------------- /src/KhanAcademy/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/KhanAcademy/src/.gitkeep -------------------------------------------------------------------------------- /src/LeetCode/src/Discuss/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/LeetCode/src/Discuss/.gitkeep -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/ArraysAndStrings/MaxConsecutiveOnes/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a binary array, find the maximum number of consecutive 1s in this array. 6 | 7 | **Example 1:** 8 | 9 | ```plaintext 10 | Input: [1,1,0,1,1,1] 11 | Output: 3 12 | Explanation: The first two digits or the last three digits are consecutive 1s. 13 | The maximum number of consecutive 1s is 3. 14 | ``` 15 | 16 | **Note:** 17 | 18 | * The input array will only contain `0` and `1`. 19 | * The length of input array is a positive integer and will not exceed 10,000. 20 | 21 | ## Notes -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/ArraysAndStrings/ReadNCharactersGivenRead4/Java/Reader4.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.ArraysAndStrings.ReadNCharactersGivenRead4.Java; 2 | 3 | public class Reader4 { 4 | int read4(char[] buf) { 5 | return 4; 6 | } 7 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/ArraysAndStrings/ReadNCharactersGivenRead4_2_CallMultipleTimes/Java/Reader4.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.ArraysAndStrings.ReadNCharactersGivenRead4_2_CallMultipleTimes.Java; 2 | 3 | public class Reader4 { 4 | int read4(char[] buf) { 5 | return 4; 6 | } 7 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/ArraysAndStrings/ValidPalindrome/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 6 | 7 | **Note:** For the purpose of this problem, we define empty string as valid palindrome. 8 | 9 | **Example 1:** 10 | 11 | ```plaintext 12 | Input: "A man, a plan, a canal: Panama" 13 | Output: true 14 | ``` 15 | 16 | **Example 2:** 17 | 18 | ```plaintext 19 | Input: "race a car" 20 | Output: false 21 | ``` 22 | 23 | ## Notes -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/Design/readme.md: -------------------------------------------------------------------------------- 1 | # Design 2 | 3 | Google loves to ask lots of question variations based on the [Iterator pattern](https://en.wikipedia.org/wiki/Iterator_pattern), so make sure you are familiar with the concept of iterators and how iterator works in principle. A good way to learn is to read open source code and try to code it yourself. For example, here is [Google's guava implementation of Peeking Iterator](https://github.com/google/guava/blob/6f22af40e1526b8c194e9e36d457bcd37680c6a3/guava/src/com/google/common/collect/Iterators.java#L1121). -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/LinkedList/InsertIntoACyclicSortedList/Java/Node.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.LinkedList.InsertIntoACyclicSortedList.Java; 2 | 3 | public class Node { 4 | int val; 5 | Node next; 6 | 7 | public Node() {} 8 | 9 | public Node(int _val, Node _next) { 10 | val = _val; 11 | next = _next; 12 | } 13 | 14 | Node(int x) { 15 | val = x; 16 | } 17 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/LinkedList/MergeKSortedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.LinkedList.MergeKSortedLists.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/Others/readme.md: -------------------------------------------------------------------------------- 1 | # Others 2 | 3 | Here are other type of problems you may encounter in a Google interview, such as Bit Manipulation. -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/Recursion/WordSearch2/Java/TrieNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.Recursion.WordSearch2.Java; 2 | 3 | public class TrieNode { 4 | TrieNode[] next = new TrieNode[26]; 5 | String word; 6 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/Recursion/WordSquares/Java/TrieNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.Recursion.WordSquares.Java; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | class TrieNode { 7 | List startWith; 8 | TrieNode[] children; 9 | 10 | TrieNode() { 11 | startWith = new ArrayList<>(); 12 | children = new TrieNode[26]; 13 | } 14 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/SortingAndSearching/InsertInterval/Java/Interval.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.SortingAndSearching.InsertInterval.Java; 2 | 3 | public class Interval { 4 | int start; 5 | int end; 6 | Interval() { start = 0; end = 0; } 7 | Interval(int s, int e) { start = s; end = e; } 8 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/SortingAndSearching/MergeIntervals/Java/Interval.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.SortingAndSearching.MergeIntervals.Java; 2 | 3 | public class Interval { 4 | int start; 5 | int end; 6 | Interval() { start = 0; end = 0; } 7 | Interval(int s, int e) { start = s; end = e; } 8 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/TreesAndGraphs/RobotRoomCleaner/Java/Asimo.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.TreesAndGraphs.RobotRoomCleaner.Java; 2 | 3 | public class Asimo implements Robot { 4 | 5 | @Override 6 | public boolean move() { 7 | return false; 8 | } 9 | 10 | @Override 11 | public void turnLeft() { 12 | 13 | } 14 | 15 | @Override 16 | public void turnRight() { 17 | 18 | } 19 | 20 | @Override 21 | public void clean() { 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/GoogleInterview/TreesAndGraphs/RobotRoomCleaner/Java/Robot.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.GoogleInterview.TreesAndGraphs.RobotRoomCleaner.Java; 2 | 3 | interface Robot { 4 | // returns true if next cell is open and robot moves into the cell. 5 | // returns false if next cell is obstacle and robot stays on the current cell. 6 | boolean move(); 7 | 8 | // Robot will stay on the same cell after calling turnLeft/turnRight. 9 | // Each turn will be 90 degrees. 10 | void turnLeft(); 11 | void turnRight(); 12 | 13 | // Clean the current cell. 14 | void clean(); 15 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Array/SingleNumber/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.Array.SingleNumber.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | int[] nums = {4,1,2,1,2}; 6 | System.out.println(singleNumber(nums)); 7 | } 8 | 9 | public static int singleNumber(int[] nums) { 10 | int retVal = 0; 11 | for (int i : nums ) { 12 | retVal = retVal ^ i; 13 | } 14 | return retVal; 15 | } 16 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Array/TwoSum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an array of integers, return **indices** of the two numbers such that they add up to a specific target. 6 | 7 | You may assume that each input would have **exactly** one solution, and you may not use the same element twice. 8 | 9 | **Example:** 10 | 11 | ```plaintext 12 | Given nums = [2, 7, 11, 15], target = 9, 13 | 14 | Because nums[0] + nums[1] = 2 + 7 = 9, 15 | return [0, 1]. 16 | ``` 17 | 18 | ## Notes 19 | 20 | 1. [LeetCode solution](https://leetcode.com/problems/two-sum/solution/) -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Array/readme.md: -------------------------------------------------------------------------------- 1 | # Array 2 | 3 | Array type of questions were asked in interviews frequently. You will most likely encounter one during your interviews. 4 | 5 | We recommend: Single Number, Rotate Array, Intersection of Two Arrays II and Two Sum. -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/DynamicProgramming/readme.md: -------------------------------------------------------------------------------- 1 | # Dynamic Programming 2 | 3 | Here are some classic Dynamic Programming interview questions. 4 | 5 | We recommend: Climbing Stairs, Best Time to Buy and Sell Stock and Maximum Subarray. -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/DeleteNodeInALinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.DeleteNodeInALinkedList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/LinkedListCycle/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.LinkedListCycle.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/MergeTwoSortedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.MergeTwoSortedLists.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/PalindromeLinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.PalindromeLinkedList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/RemoveNthNodeFromEndOfList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.RemoveNthNodeFromEndOfList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/ReverseLinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.LinkedList.ReverseLinkedList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/ReverseLinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Reverse a singly linked list. 6 | 7 | **Example:** 8 | 9 | ```plaintext 10 | Input: 1->2->3->4->5->NULL 11 | Output: 5->4->3->2->1->NULL 12 | ``` 13 | 14 | **Follow up:** 15 | 16 | A linked list can be reversed either iteratively or recursively. Could you implement both? 17 | 18 | ## Notes 19 | 20 | 1. [LeetCode solution](https://leetcode.com/problems/reverse-linked-list/solution/) -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/LinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Linked List 2 | 3 | Linked List problems are relatively easy to master. Do not forget the Two-pointer technique, which not only applicable to Array problems but also Linked List problems as well. 4 | 5 | Another technique to greatly simplify coding in linked list problems is the dummy node trick. 6 | 7 | We recommend: Reverse Linked List, Merge Two Sorted Lists and Linked List Cycle. 8 | 9 | For additional challenge, solve these problems recursively: Reverse Linked List, Palindrome Linked List and Merge Two Sorted Lists. -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/SortingAndSearching/readme.md: -------------------------------------------------------------------------------- 1 | # Sorting and Searching 2 | 3 | These problems deal with sorting or searching in a sorted structure. 4 | 5 | We recommend First Bad Version as a great introduction to a very important algorithm. -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Strings/ReverseString/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Explore.Interview.TopInterviewQuestions_Easy.Strings.ReverseString.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | System.out.println(reverseString("hello")); 6 | } 7 | 8 | public static String reverseString(String s) { 9 | char[] ch = s.toCharArray(); 10 | StringBuilder sb = new StringBuilder(); 11 | for(int i=ch.length-1; i>=0; i--) { 12 | sb.append(ch[i]); 13 | } 14 | return sb.toString(); 15 | } 16 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Strings/ValidPalindrome/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 6 | 7 | **Note:** For the purpose of this problem, we define empty string as valid palindrome. 8 | 9 | **Example 1:** 10 | 11 | ```plaintext 12 | Input: "A man, a plan, a canal: Panama" 13 | Output: true 14 | ``` 15 | 16 | **Example 2:** 17 | 18 | ```plaintext 19 | Input: "race a car" 20 | Output: false 21 | ``` 22 | 23 | ## Notes -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Strings/readme.md: -------------------------------------------------------------------------------- 1 | # Strings 2 | 3 | String type of questions were asked in interviews frequently. You will most likely encounter one during your interviews. 4 | 5 | We recommend: Reverse String, First Unique Character in a String, String to Integer (atoi) and Implement strStr(). -------------------------------------------------------------------------------- /src/LeetCode/src/Explore/Interview/TopInterviewQuestions_Easy/Trees/readme.md: -------------------------------------------------------------------------------- 1 | # Trees 2 | 3 | Tree is slightly more complex than linked list, because the latter is a linear data structure while the former is not. Tree problems can be solved either breadth-first or depth-first. We have one problem here which is great for practicing breadth-first traversal. 4 | 5 | We recommend: Maximum Depth of Binary Tree, Validate Binary Search Tree, Binary Tree Level Order Traversal and Convert Sorted Array to Binary Search Tree. -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P125_ValidPalindrome/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 6 | 7 | **Note:** For the purpose of this problem, we define empty string as valid palindrome. 8 | 9 | **Example 1:** 10 | 11 | ```plaintext 12 | Input: "A man, a plan, a canal: Panama" 13 | Output: true 14 | ``` 15 | 16 | **Example 2:** 17 | 18 | ```plaintext 19 | Input: "race a car" 20 | Output: false 21 | ``` 22 | 23 | ## Notes -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P126_WordLadder2/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/word-ladder-ii/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P136_SingleNumber/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P101_P200.P136_SingleNumber.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | int[] nums = {4,1,2,1,2}; 6 | System.out.println(singleNumber(nums)); 7 | } 8 | 9 | public static int singleNumber(int[] nums) { 10 | int retVal = 0; 11 | for (int i : nums ) { 12 | retVal = retVal ^ i; 13 | } 14 | return retVal; 15 | } 16 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P146_LruCache/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/lru-cache/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P149_MaxPointsOnALine/Java/Point.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P101_P200.P149_MaxPointsOnALine.Java; 2 | 3 | class Point { 4 | int x; 5 | int y; 6 | Point() { x = 0; y = 0; } 7 | Point(int a, int b) { x = a; y = b; } 8 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P155_MinStack/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/min-stack/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P101_P200/P173_BinarySearchTreeIterator/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST. 6 | 7 | Calling `next()` will return the next smallest number in the BST. 8 | 9 | **Note:** `next()` and `hasNext()` should run in average O(1) time and uses O(h) memory, where h is the height of the tree. 10 | 11 | ## Notes 12 | 13 | 1. [LeetCode discussion - Ideal Solution using Stack (Java)](https://leetcode.com/problems/binary-search-tree-iterator/discuss/52526/Ideal-Solution-using-Stack-(Java)) -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P19_RemoveNthNodeFromEndOfList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P19_RemoveNthNodeFromEndOfList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P1_TwoSum/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given an array of integers, return indices of the two numbers such that they add up to a specific target. 6 | 7 | You may assume that each input would have exactly one solution, and you may not use the same element twice. 8 | 9 | Example: 10 | 11 | ```plaintext 12 | Given nums = [2, 7, 11, 15], target = 9, 13 | 14 | Because nums[0] + nums[1] = 2 + 7 = 9, 15 | return [0, 1]. 16 | ``` 17 | 18 | ## Notes 19 | 20 | 1. [LeetCode solution](https://leetcode.com/problems/two-sum/solution/) -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P21_MergeTwoSortedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P21_MergeTwoSortedLists.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P23_MergeKSortedLists/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P23_MergeKSortedLists.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P33_SearchInRotatedSortedArray/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P33_SearchInRotatedSortedArray.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P56_MergeIntervals/Java/Interval.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P56_MergeIntervals.Java; 2 | 3 | public class Interval { 4 | int start; 5 | int end; 6 | Interval() { start = 0; end = 0; } 7 | Interval(int s, int e) { start = s; end = e; } 8 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P57_InsertInterval/Java/Interval.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P57_InsertInterval.Java; 2 | 3 | public class Interval { 4 | int start; 5 | int end; 6 | Interval() { start = 0; end = 0; } 7 | Interval(int s, int e) { start = s; end = e; } 8 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P69_Sqrt_x/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/sqrtx/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P1_P100/P7_ReverseInteger/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P1_P100.P7_ReverseInteger.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | System.out.println(reverse(-123)); 6 | } 7 | 8 | public static int reverse(int x) { 9 | long rev= 0; 10 | while(x != 0) { 11 | rev = rev*10 + x%10; 12 | x = x/10; 13 | if(rev > Integer.MAX_VALUE || rev < Integer.MIN_VALUE) { 14 | return 0; 15 | } 16 | } 17 | return (int) rev; 18 | } 19 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P201_P300/P206_ReverseLinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P201_P300.P206_ReverseLinkedList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P201_P300/P206_ReverseLinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Reverse a singly linked list. 6 | 7 | **Example:** 8 | 9 | ```plaintext 10 | Input: 1->2->3->4->5->NULL 11 | Output: 5->4->3->2->1->NULL 12 | ``` 13 | 14 | **Follow up:** 15 | 16 | A linked list can be reversed either iteratively or recursively. Could you implement both? 17 | 18 | ## Notes 19 | 20 | 1. [LeetCode solution](https://leetcode.com/problems/reverse-linked-list/solution/) -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P201_P300/P237_DeleteNodeInALinkedList/Java/ListNode.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P201_P300.P237_DeleteNodeInALinkedList.Java; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P201_P300/P244_ShortedWordDistance2/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P201_P300.P244_ShortedWordDistance2.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | String[] words = {"practice", "makes", "perfect", "coding", "makes"}; 6 | WordDistance obj = new WordDistance(words); 7 | String word1 = "coding"; 8 | String word2 = "practice"; 9 | int param_1 = obj.shortest(word1,word2); 10 | System.out.println(param_1); 11 | } 12 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P201_P300/P277_FindTheCelebrity/Java/Relation.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P201_P300.P277_FindTheCelebrity.Java; 2 | 3 | public class Relation { 4 | public static boolean knows(int a, int b) { 5 | return a == b; 6 | } 7 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P301_P400/P344_ReverseString/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P301_P400.P344_ReverseString.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | System.out.println(reverseString("hello")); 6 | } 7 | 8 | public static String reverseString(String s) { 9 | char[] ch = s.toCharArray(); 10 | StringBuilder sb = new StringBuilder(); 11 | for(int i=ch.length-1; i>=0; i--) { 12 | sb.append(ch[i]); 13 | } 14 | return sb.toString(); 15 | } 16 | } -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P401_P500/P416_PartitionEqualSubsetSum/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/partition-equal-subset-sum/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P501_P600/P516_LongestPalindromicSubsequence/.gitkeep: -------------------------------------------------------------------------------- 1 | https://leetcode.com/problems/longest-palindromic-subsequence/description/ -------------------------------------------------------------------------------- /src/LeetCode/src/Problems/P701_P800/P716_MaxStack/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package LeetCode.src.Problems.P701_P800.P716_MaxStack.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | MaxStack obj = new MaxStack(); 6 | obj.push(10); 7 | obj.push(20); 8 | int param_2 = obj.pop(); 9 | System.out.println(param_2); 10 | int param_3 = obj.top(); 11 | System.out.println(param_3); 12 | int param_4 = obj.peekMax(); 13 | System.out.println(param_4); 14 | int param_5 = obj.popMax(); 15 | System.out.println(param_5); 16 | } 17 | } -------------------------------------------------------------------------------- /src/LintCode/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.lintcode.com -------------------------------------------------------------------------------- /src/Miscellaneous/src/Courses/Bloomberg/FoundationsOfMachineLearning/.gitkeep: -------------------------------------------------------------------------------- 1 | https://bloomberg.github.io/foml/#lectures -------------------------------------------------------------------------------- /src/Miscellaneous/src/Courses/Google/MachineLearningCrashCourse/.gitkeep: -------------------------------------------------------------------------------- 1 | https://developers.google.com/machine-learning/crash-course/ml-intro -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/BinaryTreeToDoublyLinkedList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes 6 | 7 | 1. [YT Video - Vivekanand Khyade - Binary Tree to Doubly Linked List ( Inorder Based) BST to DLL](https://www.youtube.com/watch?v=FsxTX7-yhOw) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/CloneLinkedListWithNextAndRandomPointer/Java/Node.java: -------------------------------------------------------------------------------- 1 | package Miscellaneous.src.Problems.Coding.CloneLinkedListWithNextAndRandomPointer.Java; 2 | 3 | class Node { 4 | int data;//Node data 5 | Node next, random;//Next and random reference 6 | 7 | //Node constructor 8 | public Node(int data) { 9 | this.data = data; 10 | this.next = this.random = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/CommonLettersInInputStrings/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Write a function that takes two strings and returns a string containing letters present in both inputs. 6 | 7 | **Examples:** 8 | 9 | ```plaintext 10 | f("abcd", "efgh") => "" 11 | f("aeiou", "abcde") => "ae" 12 | f("aeiou", "abcabc") => "a" 13 | f("Call me Ishmael…", "It was best of times, it was the worst of times...") 14 | f("Call", "It was the best of times…") 15 | f("Call me Ishmael…", "abcdef…xyz") 16 | ``` 17 | 18 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/EvaluateExpressionWithBrackets/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/expression-evaluation/ 2 | https://introcs.cs.princeton.edu/java/43stack/Evaluate.java.html 3 | http://www.java2novice.com/data-structures-in-java/stacks/infix-expression/ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/FindNumberLittleOrBigEndian/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/ImplementQueueUsingStack/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/InMemoryDatabaseWithNestedTransactions/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Create an in-memory database with nested transactional support. 6 | 7 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/KthLargestElementInBst/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/LevelOrderTraversalBinaryTreeLevelByLevel/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package Miscellaneous.src.Problems.Coding.LevelOrderTraversalBinaryTreeLevelByLevel.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/LevelOrderTraversalBinaryTreeSingleLine/Java/TreeNode.java: -------------------------------------------------------------------------------- 1 | package Miscellaneous.src.Problems.Coding.LevelOrderTraversalBinaryTreeSingleLine.Java; 2 | 3 | class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | left = null; 10 | right = null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/MapWordsListToGrid/Java/Solution.java: -------------------------------------------------------------------------------- 1 | package Miscellaneous.src.Problems.Coding.MapWordsListToGrid.Java; 2 | 3 | public class Solution { 4 | public static void main(String[] args) { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/MappingBetweenMessageAndCode/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Function takes 2 strings, message and code. Returns a boolean indicating whether can create a 1:1 mapping between words in message and letters in code (can encode/decode message with code). 6 | 7 | **Examples:** 8 | 9 | ```plaintext 10 | "red green blue", "abc" --> True 11 | "red green blue", "abb" --> False 12 | "red blue blue", "abb" --> True 13 | 14 | "red blue red", "ab" --> False 15 | "red blue red", "abaa" --> False 16 | ``` 17 | 18 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/RemoveDuplicatesAndReturnList/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Remove duplicates and return list. Input list is unsorted. Solve for optimal time complexity. 6 | 7 | ```plaintext 8 | Example: 9 | 10 | Input: [1, 2, 1, 3, 2, 1, 2] 11 | Output: [1, 2, 3] 12 | ``` 13 | 14 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/ReverseString/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/RotateTheBitsOfANumber/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/SeedRecordsPerBin/csharp/Solution/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeedRecordsPerBin.Solution 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | int[] seeds = new int[]{22000, 28000, 25000, 33000, 21000, 24000, 32000, 18000, 30000, 31000, 23000, 19000}; 10 | Engine engine = new Engine(); 11 | engine.Orchestrator(seeds); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/SeedRecordsPerBin/csharp/Solution/Solution.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/SwapTwoPointers/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/TruckLoadingTotalWeight/csharp/Solution/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace TruckLoadingTotalWeight.Solution 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | string input = "+6b25 +50 -2b25 +10b20 -50"; 10 | Engine engine = new Engine(); 11 | Console.WriteLine(engine.getWeight(input)); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/TruckLoadingTotalWeight/csharp/Solution/Solution.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/Coding/TruckLoadingTotalWeight/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Given a string, return the total weight carried by a truck over several waypoints. Each waypoint in the string is separated by a whitespace. The string is of the form: 6 | 7 | ```plaintext 8 | +6b25 +50 -2b25 +10b20 -50 9 | ``` 10 | 11 | ### Explanation 12 | 13 | ```plaintext 14 | +6b25 15 | 16 | + = add to truck 17 | - = remove from truck 18 | 6 = # of boxes 19 | 25 = weight of each box 20 | 21 | +50 22 | 23 | 1 box of weight 50 24 | ``` 25 | 26 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/BinarySearch/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownAlgorithms/BinarySearch/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/BreadthFirstSearch/BinaryTree/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.youtube.com/watch?v=uWL6FJhq5fM -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/BreadthFirstSearch/Graph/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownAlgorithms/BreadthFirstSearch/Graph/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/DepthFirstSearch/BinaryTree/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownAlgorithms/DepthFirstSearch/BinaryTree/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/DepthFirstSearch/Graph/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownAlgorithms/DepthFirstSearch/Graph/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/DetectCycleInDirectedGraphAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.youtube.com/watch?v=rKQaZuoUR4M 2 | https://www.geeksforgeeks.org/detect-cycle-in-a-graph/ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/SlidingWindow/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownAlgorithms/SlidingWindow/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/SparseTableAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.youtube.com/watch?v=c5O7E_PDO4U -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/StringPermutationAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.youtube.com/watch?v=nYFd7VHKyWQ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/TopologicalSortingForDirectedAcyclicGraph/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Topological_sorting 2 | https://www.geeksforgeeks.org/topological-sorting/ 3 | https://www.youtube.com/watch?v=ddTC4Zovtbc -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/UnionFindAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/union-find/ 2 | https://www.youtube.com/watch?v=n_t0a_8H8VY -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/UnionFindAlgorithm_UnionByRankAndPathCompression/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/union-find-algorithm-set-2-union-by-rank/ 2 | https://www.youtube.com/watch?v=ID00PMy0-vE -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/ZAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/z-algorithm-linear-time-pattern-searching-algorithm/ 2 | https://www.youtube.com/watch?v=CpZh4eF8QBw 3 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/BellmanFordAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Bellman–Ford_algorithm 2 | https://www.geeksforgeeks.org/bellman-ford-algorithm-dp-23/ 3 | https://www.youtube.com/watch?v=-mOEd_3gTK0 -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/BlumFloydPrattRivestTarjanAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Blum-Floyd-Pratt-Rivest-Tarjan Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [conflatedthoughts.blogspot.com - Blum-Floyd-Pratt-Rivest-Tarjan algorithm](http://conflatedthoughts.blogspot.com/2014/01/blum-floyd-pratt-rivest-tarjan-algorithm.html) 10 | 1. [LeetCode discussion - Solution explained](https://leetcode.com/problems/kth-largest-element-in-an-array/discuss/60294/Solution-explained) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/DijkstrasAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm 2 | https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/ 3 | https://www.youtube.com/watch?v=lAXZGERcDf4 4 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/EdmondsKarpAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Edmonds–Karp Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [Edmonds–Karp Algorithm - Wikipedia](https://en.wikipedia.org/wiki/Edmonds–Karp_algorithm) 10 | 1. [YT Video - Tushar Roy - Ford Fulkerson Algorithm Edmonds Karp Algorithm For Max Flow](https://www.youtube.com/watch?v=GiN3jRdgxU4) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/FloydWarshallAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Floyd–Warshall_algorithm 2 | https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/ 3 | https://www.youtube.com/watch?v=LwJdNfdLF9s -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/FordFulkersonAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Ford–Fulkerson Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [Ford–Fulkerson Algorithm - Wikipedia](https://en.wikipedia.org/wiki/Ford–Fulkerson_algorithm) 10 | 1. [Geeks for Geeks - Ford-Fulkerson Algorithm for Maximum Flow Problem](https://www.geeksforgeeks.org/ford-fulkerson-algorithm-for-maximum-flow-problem/) 11 | 1. [YT Video - Tushar Roy - Ford Fulkerson Algorithm Edmonds Karp Algorithm For Max Flow](https://www.youtube.com/watch?v=GiN3jRdgxU4) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/HierholzersAlgorithmForDirectedGraph/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.geeksforgeeks.org/hierholzers-algorithm-directed-graph/ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/JohnsonsAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Johnson%27s_algorithm 2 | https://www.geeksforgeeks.org/johnsons-algorithm/ 3 | https://www.youtube.com/watch?v=johyrWospv0 -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/KadanesAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Kadane's Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [Geeks for Geeks - Largest Sum Contiguous Subarray](https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/) 10 | 1. [LeetCode discussion - - Maximum Subarray - Accepted O(n) solution in java](https://leetcode.com/problems/maximum-subarray/discuss/20211/Accepted-O(n)-solution-in-java) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/KnuthMorrisPrattAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Knuth–Morris–Pratt Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [YT Video - Tushar Roy - Knuth–Morris–Pratt(KMP) Pattern Matching(Substring search)](https://www.youtube.com/watch?v=GTJr8OvyEVQ) 10 | 1. [YT Video - Tushar Roy - Knuth–Morris–Pratt(KMP) Pattern Matching(Substring search) Part2](https://www.youtube.com/watch?v=KG44VoDtsAA) 11 | 1. [GitHub - Tushar Roy - SubstringSearch - KMP](https://github.com/mission-peace/interview/blob/master/src/com/interview/string/SubstringSearch.java) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/KosarajusAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Kosaraju%27s_algorithm 2 | https://www.geeksforgeeks.org/strongly-connected-components/ 3 | https://www.youtube.com/watch?v=RpgcYiky7uw -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/LeeAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Lee Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [Wikipedia - Lee algorithm](https://en.wikipedia.org/wiki/Lee_algorithm) 10 | 1. [9~10ms JAVA solution beats 98%](https://leetcode.com/problems/shortest-distance-from-all-buildings/discuss/76930/9~10ms-JAVA-solution-beats-98) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/ManachersAlgorithm/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Manacher's Algorithm 6 | 7 | ## Notes 8 | 9 | 1. [YT Video - Tushar Roy - Longest Palindromic Substring Manacher's Algorithm](https://www.youtube.com/watch?v=V-sEwsca1ak) 10 | 1. [LeetCode Problem - Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/) -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/MorrisInorderTreeTraversal/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.youtube.com/watch?v=wGXB9OWhPTg -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/PrimsAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Prim%27s_algorithm 2 | https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/ 3 | https://www.youtube.com/watch?v=oP2-8ysT3QQ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/RabinKarpAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Rabin–Karp_algorithm 2 | https://www.geeksforgeeks.org/rabin-karp-algorithm-for-pattern-searching/ 3 | https://www.youtube.com/watch?v=H4VrKHVG5qI -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownAlgorithms/_NamedAlgorithms/UkkonensAlgorithm/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Ukkonen%27s_algorithm 2 | https://www.geeksforgeeks.org/ukkonens-suffix-tree-construction-part-1/ 3 | http://brenden.github.io/ukkonen-animation/ 4 | https://www.youtube.com/watch?v=aPRqocoBsFQ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownDataStructures/_NamedDataStructures/FenwickTreeOrBinaryIndexedTree/.gitkeep: -------------------------------------------------------------------------------- 1 | https://en.wikipedia.org/wiki/Fenwick_tree 2 | https://www.youtube.com/watch?v=CWDQJGaN1gY 3 | https://www.geeksforgeeks.org/binary-indexed-tree-or-fenwick-tree-2/ 4 | https://www.topcoder.com/community/data-science/data-science-tutorials/binary-indexed-trees/ -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/KnownDataStructures/_NamedDataStructures/Trie/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Miscellaneous/src/Problems/KnownDataStructures/_NamedDataStructures/Trie/.gitkeep -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/SystemsDesign/AutomatedParkingGarage/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Design an automated parking garage with object models and APIs. The parking garage will have a an automated parker. 6 | 7 | ## Notes 8 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/SystemsDesign/DesignPaywall/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Design a paywall for a news portal. 6 | 7 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/SystemsDesign/Elevator/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Design an elevator with object models and scheduling algorithm. 6 | 7 | ## Notes -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/SystemsDesign/ImagesDedeplicator/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Design a system that will dedup 20000 images in a file folder. Now extend this design into a services model that will work for 10 billion images stored in a network share or AWS S3 bucket. 6 | 7 | ## Discussion 8 | 9 | ## Notes 10 | 11 | ## References 12 | -------------------------------------------------------------------------------- /src/Miscellaneous/src/Problems/SystemsDesign/ScalingReadRequests/readme.md: -------------------------------------------------------------------------------- 1 | # Problem Definition 2 | 3 | ## Description 4 | 5 | Discuss approaches for scaling read requests in a read-heavy distributed system. 6 | 7 | ## Discussion 8 | 9 | ### Approach 10 | 11 | ## Notes 12 | 13 | ## References 14 | -------------------------------------------------------------------------------- /src/NeetCode/misc.md: -------------------------------------------------------------------------------- 1 | # Misc 2 | 3 | https://neetcode.io -------------------------------------------------------------------------------- /src/Pramp/src/Blog/SlidingWindow/AllKSubsequenceMaximums/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "All K Subsequence Maximums", 4 | "origin": { 5 | "name": "Pramp", 6 | "link": "https://blog.pramp.com/coding-interviews-and-the-snake-game-have-this-one-thing-in-common-e0189fba1c9c" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/Pramp/src/Blog/SlidingWindow/MaximumSumSubsequence/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Maximum Sum Subsequence", 4 | "origin": { 5 | "name": "Pramp", 6 | "link": "https://blog.pramp.com/coding-interviews-and-the-snake-game-have-this-one-thing-in-common-e0189fba1c9c" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/Pramp/src/Blog/SlidingWindow/MovingAverage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Coding", 3 | "name": "Moving Average", 4 | "origin": { 5 | "name": "Pramp", 6 | "link": "https://blog.pramp.com/coding-interviews-and-the-snake-game-have-this-one-thing-in-common-e0189fba1c9c" 7 | }, 8 | "companies": [ 9 | "", 10 | "" 11 | ], 12 | "categories": [ 13 | { 14 | "name": "", 15 | "children": [] 16 | } 17 | ], 18 | "tags": [ 19 | "" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/ProgramCreek/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://www.programcreek.com/2012/11/top-10-algorithms-for-coding-interview/ 2 | https://www.programcreek.com/2013/08/leetcode-problem-classification/ 3 | https://www.programcreek.com/wp-content/uploads/2012/11/coding-interview-in-java.pdf -------------------------------------------------------------------------------- /src/ProjectEuler/src/.gitkeep: -------------------------------------------------------------------------------- 1 | https://projecteuler.net/archives -------------------------------------------------------------------------------- /src/TopCoder/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/TopCoder/src/.gitkeep -------------------------------------------------------------------------------- /src/Udacity/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/Udacity/src/.gitkeep -------------------------------------------------------------------------------- /src/Udemy/src/acloudguru-aws-certified-solutions-architect-associate/Section01_Introduction/readme.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | -------------------------------------------------------------------------------- /src/Udemy/src/the-ultimate-handson-hadoop-tame-your-big-data/Section02_UsingHadoopsCore-HdfsAndMapReduce/readme.md: -------------------------------------------------------------------------------- 1 | # Section 2: Using Hadoop's Core: HDFS and MapReduce 2 | -------------------------------------------------------------------------------- /src/VirtualJudge/.gitkeep: -------------------------------------------------------------------------------- 1 | https://vjudge.net/ -------------------------------------------------------------------------------- /src/_notes/books/behind-the-cloud/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/_notes/books/behind-the-cloud/.gitkeep -------------------------------------------------------------------------------- /src/_notes/books/explain-the-cloud-like-i-am-10/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/_notes/books/explain-the-cloud-like-i-am-10/.gitkeep -------------------------------------------------------------------------------- /src/_notes/books/site-reliability-engineering-how-google-runs-production-systems/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/_notes/books/site-reliability-engineering-how-google-runs-production-systems/.gitkeep -------------------------------------------------------------------------------- /src/spoj/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computer-science-engineering/learning-computer-science/852d8ea8025f47a2948f96e08b06d7fd6e5dd5c9/src/spoj/src/.gitkeep --------------------------------------------------------------------------------