├── .gitignore ├── Create └── out.exe ├── DSA December ├── 00. Introduction │ ├── conditions │ │ └── Main.java │ ├── countDigits │ │ └── Main.java │ ├── curiousCase │ │ └── Main.java │ ├── digitsOfNumber │ │ └── Main.java │ ├── fibonacci │ │ ├── Main.class │ │ └── Main.java │ ├── gcdLCM │ │ └── Main.java │ ├── gradingSystem │ │ └── Main.java │ ├── isANumberPrime │ │ ├── Main.java │ │ └── optimized │ │ │ └── Main.java │ ├── javaDemo │ │ ├── Main.java │ │ └── snippet.java │ ├── primeFactorization │ │ └── Main.java │ ├── primeTillN │ │ └── Main.java │ ├── printZ │ │ ├── Main.class │ │ └── Main.java │ ├── pythagoreanTriplet │ │ └── Main.java │ ├── reverseOfNumber │ │ └── Main.java │ ├── rotateOfNumber │ │ └── Main.java │ └── variableDemo │ │ ├── Main.class │ │ └── Main.java ├── 01. patterns │ ├── p1 │ │ ├── Main.class │ │ └── Main.java │ ├── p10 │ │ └── Main.java │ ├── p11 │ │ └── Main.java │ ├── p12 │ │ └── Main.java │ ├── p13 │ │ └── Main.java │ ├── p15 │ │ └── Main.java │ ├── p16 │ │ └── Main.java │ ├── p17 │ │ └── Main.java │ ├── p18 │ │ └── Main.java │ ├── p2 │ │ └── Main.java │ ├── p3 │ │ └── Main.java │ ├── p4 │ │ └── Main.java │ ├── p5 │ │ └── Main.java │ ├── p6 │ │ └── Main.java │ ├── p7 │ │ └── Main.java │ └── p9 │ │ └── Main.java ├── 02. functions │ ├── demo │ │ ├── Main.class │ │ └── Main.java │ ├── demo2 │ │ ├── Main.class │ │ └── Main.java │ └── digitFreq │ │ └── Main.java ├── 03. arrays │ ├── barChart │ │ └── Main.java │ ├── binarySearch │ │ ├── Main.class │ │ └── Main.java │ ├── demo │ │ ├── Main.class │ │ └── Main.java │ ├── firstIndexLastIndex │ │ └── Main.java │ ├── inverse │ │ └── Main.java │ ├── reverse │ │ └── Main.java │ ├── rotate │ │ └── Main.java │ ├── searchInArray │ │ └── Main.java │ ├── span │ │ └── Main.java │ ├── subArrayProblem │ │ └── Main.java │ └── sumOfArray │ │ └── Main.java ├── 04. 2dArray │ ├── demo │ │ └── Main.java │ ├── exitPoint │ │ └── Main.java │ ├── matrixMul │ │ └── Main.java │ ├── ringRotate │ │ └── Main.java │ ├── rotateBy90 │ │ └── Main.java │ ├── searchIn2DSortedArray │ │ └── Main.java │ ├── sow2 │ │ └── Main.java │ ├── spiral │ │ └── Main.java │ └── stateOfWakanda │ │ └── Main.java ├── 05. String_SB_AL │ ├── demoString │ │ ├── Main.java │ │ ├── demo2.class │ │ └── demo2.java │ ├── printPalindromic │ │ └── Main.java │ ├── removePrime │ │ └── Main.java │ ├── stringBuilderDemo │ │ ├── Main.class │ │ └── Main.java │ └── stringCompression │ │ └── Main.java ├── 06. Recursion │ ├── backtracking │ │ ├── floodFill │ │ │ ├── Main.java │ │ │ └── method2.java │ │ ├── knightsTour │ │ │ └── Main.java │ │ ├── nQueen │ │ │ └── Main.java │ │ └── tarSumSS │ │ │ └── Main.java │ ├── intro │ │ ├── factorial │ │ │ └── Main.java │ │ ├── pdi │ │ │ └── Main.java │ │ ├── powLinear │ │ │ └── Main.java │ │ ├── printDecresing │ │ │ └── Main.java │ │ └── printIncreasing │ │ │ └── Main.java │ ├── recursionOntheWayUp │ │ ├── printEncoding │ │ │ └── Main.java │ │ ├── printKPC │ │ │ └── Main.java │ │ ├── printMazePath │ │ │ └── Main.java │ │ ├── printPermutations │ │ │ └── Main.java │ │ ├── printSS │ │ │ └── Main.java │ │ └── printStairPath │ │ │ └── Main.java │ ├── recursionWithAL │ │ ├── getKPC │ │ │ └── Main.java │ │ ├── getMazePath │ │ │ └── Main.java │ │ ├── getSS │ │ │ └── Main.java │ │ └── getStairPath │ │ │ └── Main.java │ └── recursionWithArray │ │ ├── allIndices │ │ └── Main.java │ │ ├── displayReverse │ │ └── Main.java │ │ ├── firstIndex │ │ └── Main.java │ │ ├── lastIndex │ │ └── Main.java │ │ └── maxOfArray │ │ └── Main.java ├── 07. OOPs │ └── Nodes │ │ ├── Main$student.class │ │ ├── Main.class │ │ ├── Main.java │ │ └── node │ │ └── Main.java ├── 08. LinkedList │ ├── LC141_isCycle │ │ └── Main.java │ ├── LC143_Reorder │ │ └── Main.java │ ├── LC148_MergeSort │ │ └── Main.java │ ├── LC19_removeFromEnd │ │ └── Main.java │ ├── LC21_MergeTwoSorted │ │ └── Main.java │ ├── LC25_kReverseLL │ │ └── Main.java │ ├── LC876_Mid │ │ └── Main.java │ ├── adapters │ │ └── Main.java │ ├── linkedListCreation │ │ └── Main.java │ └── reverseSeries │ │ ├── reverseDataIteratively │ │ └── Main.java │ │ └── reversePointerLC206 │ │ └── Main.java ├── 09. DP │ ├── 2x1tiling │ │ └── Main.java │ ├── LC_198_houseRobber │ │ └── Main.java │ ├── climbStairVJ │ │ └── Main.java │ ├── coinChangeCombi │ │ └── Main.java │ ├── coinChangePermu │ │ └── Main.java │ ├── count a_b_c │ │ └── Main.java │ ├── countBinaryString │ │ └── Main.java │ ├── fibo │ │ ├── Main.class │ │ └── Main.java │ ├── frndsPairing │ │ └── Main.java │ ├── goldmine │ │ └── Main.java │ ├── maxTrick │ │ └── Main.java │ ├── minCostMazePath │ │ └── Main.java │ ├── paintFence │ │ └── Main.java │ ├── paintHouse │ │ └── Main.java │ ├── stairPath │ │ └── Main.java │ ├── targetSumSS │ │ └── Main.java │ ├── unboundedKS │ │ └── Main.java │ └── zeroOneKS │ │ └── Main.java ├── 10. Stack and Queues │ ├── LC 20_validParantheses │ │ └── Main.java │ ├── adapters │ │ ├── queueToStack_Pop │ │ │ └── Main.java │ │ └── queueToStack_Push │ │ │ └── Main.java │ ├── celebrityProblem │ │ └── Main.java │ ├── duplicateBracket │ │ └── Main.java │ ├── dynamicQueue │ │ └── Main.java │ ├── dynamicStack │ │ └── Main.java │ ├── infixConversion │ │ └── Main.java │ ├── infixEvaluation │ │ └── Main.java │ ├── largestAreaHistogram │ │ └── Main.java │ ├── mergeInterval LC_56 │ │ └── Main.java │ ├── nextGreaterOnRight │ │ └── Main.java │ ├── normalQueue │ │ └── Main.java │ ├── normalStack │ │ └── Main.java │ └── stackDemo │ │ ├── Main.class │ │ └── Main.java ├── 11. BinaryTree │ ├── LC 236 _ LCA │ │ └── Main.java │ ├── constructAndDisplay │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── diameterOfBT │ │ └── Main.java │ ├── findAndn2R_Path │ │ └── Main.java │ ├── kDistanceDown │ │ └── Main.java │ ├── kDistanceFarAway │ │ └── Main.java │ ├── levelOrder │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── maxSizeHeight │ │ └── Main.java │ ├── max_sum_size │ │ └── Main.java │ ├── preOrder_LC144 │ │ └── Main.java │ ├── rootLeafPathInRange │ │ └── Main.java │ ├── singleChildNode │ │ └── Main.java │ └── traversalsRecursive │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java ├── 12. BST │ ├── 01. isBST │ │ └── Main.java │ ├── 02. LC 98 isBST │ │ └── Main.java │ ├── 03. minimum │ │ └── Main.java │ ├── 04. createBST LC 108 │ │ └── Main.java │ ├── 05. LC 700 Search In BST │ │ └── Main.java │ ├── 06. LC 701 Add In BST │ │ └── Main.java │ ├── 07. LC 450 Remove from BST │ │ └── Main.java │ └── 08. LC 235 LCA of BST │ │ └── Main.java ├── 13. GenricTree │ ├── 01. size │ │ └── Main.java │ ├── 02. prePostTraversal │ │ └── Main.java │ ├── 03. levelOrder Same Line │ │ └── Main.java │ ├── 04. levelOrder LineWise │ │ └── Main.java │ ├── 05. mirror │ │ └── Main.java │ ├── 06. findInGT │ │ └── Main.java │ ├── 07. n2R and LCA │ │ └── Main.java │ ├── 08. distanceBetweenTwoNodes │ │ └── Main.java │ ├── 09. removeLeaves │ │ └── Main.java │ ├── 10. similarInShape │ │ └── Main.java │ ├── 11. mirrorShape │ │ └── Main.java │ ├── 12. isSymmetric │ │ └── Main.java │ ├── 13. ceilAndFloor │ │ └── Main.java │ ├── 14. nodeWithMaxSubTreeSum │ │ └── Main.java │ └── 15. iteratively │ │ └── Main.java ├── 14. Graph │ ├── 01. intro │ │ ├── Main$Edge.class │ │ ├── Main.class │ │ └── Main.java │ ├── 02. hasPath │ │ └── Main.java │ ├── 03. allPath │ │ └── Main.java │ ├── 04. getConnectedComp │ │ └── Main.java │ ├── 05. LC 200 Number of Island │ │ └── Main.java │ ├── 06. perfectFriends │ │ └── Main.java │ ├── 07. bft │ │ └── Main.java │ ├── 08. hamiltonian │ │ ├── Main.java │ │ └── Main2.java │ ├── 09. isCyclic │ │ └── Main.java │ ├── 10. isBipartite │ │ └── Main.java │ ├── 11. LC 994 rottenOrange │ │ └── Main.java │ ├── 12. PrimsAlgo │ │ └── Main.java │ ├── 13.DijkstraAlgo │ │ └── Main.java │ └── 14. OrderOfCompilation │ │ └── Main.java ├── 15. HashMap and Heap │ ├── 01. highestFreqChar │ │ └── Main.java │ ├── 02. getCommonEle1 │ │ └── Main.java │ ├── 03. getCommonEle2 │ │ └── Main.java │ ├── 04. maxConsecutiveSeq │ │ └── Main.java │ ├── 05. kLargestEle │ │ └── Main.java │ ├── 06. mergeKsorted │ │ └── Main.java │ ├── 07. writeHashMap │ │ └── Main.java │ └── demo │ │ ├── Main.class │ │ └── Main.java ├── 16. Time and Space │ ├── 01. bubbleSort │ │ └── Main.java │ ├── 02. selectionSort │ │ └── Main.java │ ├── 03. insertionSort │ │ └── Main.java │ ├── 04. merge2SortedArray │ │ └── Main.java │ ├── 05. mergeSort │ │ └── Main.java │ └── 06. sort 0 1 │ │ └── Main.java └── extra │ ├── dijkstraAlgo │ ├── Main$Edge.class │ ├── Main$pp.class │ ├── Main.class │ ├── Main.java │ └── inp.txt │ ├── hashset │ ├── Main.class │ └── Main.java │ ├── lambda │ ├── Main.class │ ├── Main.java │ └── output.txt │ ├── primsAlgo │ ├── Main$Edge.class │ ├── Main$pp.class │ ├── Main.class │ ├── Main.java │ └── inp.txt │ └── priorityQueue │ ├── Main$pair.class │ ├── Main.class │ └── Main.java ├── FJP 3 ├── 02. Array │ ├── l001.class │ └── l001.java ├── 03. 2D Array │ ├── ringRotate │ │ └── Main.java │ └── search2D │ │ └── Main.java ├── 04. String_SB_AL │ ├── arrayList Demo │ │ ├── Main.class │ │ ├── Main.java │ │ ├── demo2.class │ │ └── demo2.java │ ├── printPalSS │ │ └── Main.java │ ├── stringBuilder Demo │ │ └── Main.java │ ├── stringCompression │ │ └── Main.java │ ├── stringDemo.class │ ├── stringDemo.java │ ├── stringDemo2.class │ ├── stringDemo2.java │ └── toggleCase │ │ └── Main.java ├── 05. Recursion │ ├── backtracking │ │ ├── floodFill │ │ │ ├── method1 │ │ │ │ └── Main.java │ │ │ ├── method2 │ │ │ │ └── Main.java │ │ │ ├── method3 │ │ │ │ └── Main.java │ │ │ └── method4 │ │ │ │ └── Main.java │ │ ├── knightTour │ │ │ └── Main.java │ │ ├── nQueen │ │ │ └── Main.java │ │ └── targetSum │ │ │ └── Main.java │ ├── intro │ │ ├── linearPower │ │ │ └── Main.java │ │ └── logPower │ │ │ └── Main.java │ ├── recursionInAL │ │ ├── getKPC │ │ │ └── Main.java │ │ ├── getMazePath │ │ │ └── Main.java │ │ ├── getMazePathJumps │ │ │ └── Main.java │ │ ├── getMazePathWithJumps │ │ │ └── Main.java │ │ ├── getStairPath │ │ │ └── Main.java │ │ └── getSubSequence │ │ │ └── Main.java │ ├── recursionInArray │ │ ├── allIndex │ │ │ └── Main.java │ │ ├── displayArr │ │ │ └── Main.java │ │ ├── firstIndex │ │ │ └── Main.java │ │ ├── lastIndex │ │ │ └── Main.java │ │ └── maxOfArray │ │ │ └── Main.java │ └── recursionOnTheWayUp │ │ ├── encoding │ │ └── Main.java │ │ ├── mazePath │ │ └── Main.java │ │ ├── mazePathWithJumps │ │ └── Main.java │ │ ├── permutations │ │ └── Main.java │ │ ├── printSS │ │ └── Main.java │ │ └── stairPath │ │ └── Main.java ├── 06.oopsDemo │ └── demo1 │ │ ├── Main.class │ │ ├── aman.class │ │ ├── aman.java │ │ ├── robot.class │ │ └── text.class ├── 07. linkedList │ ├── adapters │ │ ├── lltoQueueAdap │ │ │ └── Main.java │ │ └── lltoStackAdap │ │ │ └── Main.java │ ├── addAt │ │ └── Main.java │ ├── addFirst │ │ └── Main.java │ ├── addLast │ │ └── Main.java │ ├── displayLL │ │ └── Main.java │ ├── getElement │ │ └── Main.java │ ├── questions │ │ └── Main.java │ ├── removeFirst │ │ └── Main.java │ ├── removeSeries │ │ └── Main.java │ └── reverse │ │ ├── reverseDI.java │ │ └── reversePI.java ├── 08. DP │ ├── 01knapSack │ │ └── Main.java │ ├── climbStairs │ │ └── Main.java │ ├── climbStairsVJ │ │ └── Main.java │ ├── coinChangeCombination │ │ └── Main.java │ ├── coinChangePermutation │ │ └── Main.java │ ├── consecutiveOneNotAll │ │ └── Main.java │ ├── count A+B+C │ │ └── Main.java │ ├── fibonacci │ │ ├── Main.class │ │ ├── Main.java │ │ └── output.txt │ ├── friendsPairing │ │ └── Main.java │ ├── goldMine │ │ └── Main.java │ ├── maxSumNonAdj │ │ └── Main.java │ ├── minCostMaze │ │ └── Main.java │ ├── paintFence │ │ └── Main.java │ ├── paintHouse │ │ └── Main.java │ ├── targetSumSS │ │ └── Main.java │ ├── tiling2x1 │ │ └── Main.java │ ├── tilingmx1 │ │ └── Main.java │ └── unBoundedKnapSack │ │ └── Main.java ├── 09. HashMap and Heap │ ├── createHashMap │ │ └── Main.java │ ├── createHeap │ │ └── Main.java │ ├── demoPQ │ │ ├── Main.class │ │ └── Main.java │ ├── getCommon1 │ │ └── Main.java │ ├── getCommon2 │ │ └── Main.java │ ├── hashmapDemo │ │ └── Main.java │ ├── kLargesEle │ │ └── Main.java │ ├── longestConsecutiveLen │ │ └── Main.java │ ├── maxFreqChar │ │ ├── Main.class │ │ └── Main.java │ └── mergeKSortedList │ │ ├── Main$triplet.class │ │ ├── Main.class │ │ ├── Main.java │ │ └── input.txt ├── 10. Time and Space │ ├── bubbleSort │ │ └── Main.java │ ├── insertionSort │ │ └── Main.java │ ├── merge2sorted │ │ └── Main.java │ ├── mergeSort │ │ └── Main.java │ ├── selectionSort │ │ └── Main.java │ ├── sort 0 1 2 │ │ └── Main.java │ └── sort 0 1 │ │ └── Main.java ├── 11. Stack and Queues │ ├── LC 20validParentheses │ │ └── Main.java │ ├── adapters │ │ ├── queueToStack_Pop │ │ │ └── Main.java │ │ └── queueToStack_Push │ │ │ └── Main.java │ ├── celebrityProblem │ │ └── Main.java │ ├── duplicateBracket │ │ └── Main.java │ ├── dynamicQueue │ │ └── Main.java │ ├── dynamicStack │ │ └── Main.java │ ├── infixConversion │ │ └── Main.java │ ├── infixEvalutaion │ │ └── Main.java │ ├── largestAreaHistogram │ │ └── Main.java │ ├── mergeInterval LC_56 │ │ └── Main.java │ ├── nextGreaterOnRight │ │ └── Main.java │ ├── normalQueue │ │ └── Main.java │ ├── normalStack │ │ └── Main.java │ └── stackDemo │ │ └── Main.java ├── 12. Binary Tree │ ├── LC 236 _ LCA │ │ └── Main.java │ ├── constructAndDisplay │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── diameterOfBT │ │ └── Main.java │ ├── findAndn2R_Path │ │ └── Main.java │ ├── kDistanceDown │ │ └── Main.java │ ├── kDistanceFarAway │ │ └── Main.java │ ├── levelOrder │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── maxSizeHeight │ │ └── Main.java │ ├── max_sum_size │ │ └── Main.java │ ├── preOrder_LC144 │ │ └── Main.java │ ├── rootLeafPathInRange │ │ └── Main.java │ ├── singleChildNode │ │ └── Main.java │ └── traversalsRecursive │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java ├── 13. BST │ ├── 01. isBST │ │ └── Main.java │ ├── 02. LC 98 isBST │ │ └── Main.java │ ├── 03. minimum │ │ └── Main.java │ ├── 04. createBST LC 108 │ │ └── Main.java │ ├── 05. LC 700 Search In BST │ │ └── Main.java │ ├── 06. LC 701 Add In BST │ │ └── Main.java │ ├── 07. LC 450 Remove from BST │ │ └── Main.java │ └── 08. LC 235 LCA of BST │ │ └── Main.java ├── 14. GenricTree │ ├── 01. size │ │ └── Main.java │ ├── 02. prePostTraversal │ │ └── Main.java │ ├── 03. levelOrder Same Line │ │ └── Main.java │ ├── 04. levelOrder LineWise │ │ └── Main.java │ ├── 05. mirror │ │ └── Main.java │ ├── 06. findInGT │ │ └── Main.java │ ├── 07. n2R and LCA │ │ └── Main.java │ ├── 08. distanceBetweenTwoNodes │ │ └── Main.java │ ├── 09. removeLeaves │ │ └── Main.java │ ├── 10. similarInShape │ │ └── Main.java │ ├── 11. mirrorShape │ │ └── Main.java │ ├── 12. isSymmetric │ │ └── Main.java │ ├── 13. ceilAndFloor │ │ └── Main.java │ ├── 14. nodeWithMaxSubTreeSum │ │ └── Main.java │ └── 15. iteratively │ │ └── Main.java ├── 15. Graph │ ├── 01. intro │ │ ├── Main$Edge.class │ │ ├── Main.class │ │ └── Main.java │ ├── 02. hasPath │ │ └── Main.java │ ├── 03. allPath │ │ └── Main.java │ ├── 04. getConnectedComp │ │ └── Main.java │ ├── 05. LC 200 Number of Island │ │ └── Main.java │ ├── 06. perfectFriends │ │ └── Main.java │ ├── 07. bft │ │ └── Main.java │ ├── 08. hamiltonian │ │ ├── Main.java │ │ └── Main2.java │ ├── 09. isCyclic │ │ └── Main.java │ ├── 10. isBipartite │ │ └── Main.java │ ├── 11. LC 994 rottenOrange │ │ └── Main.java │ ├── 12. PrimsAlgo │ │ └── Main.java │ └── 13. OrderOfCompilation │ │ └── Main.java ├── Notes │ └── fjp 3 19 jan 22.pdf ├── extra │ ├── dijkstraAlgo │ │ ├── Main$Edge.class │ │ ├── Main$pp.class │ │ ├── Main.class │ │ ├── Main.java │ │ └── inp.txt │ ├── hashset │ │ └── Main.java │ ├── lambda │ │ ├── Main.class │ │ ├── Main.java │ │ └── output.txt │ ├── primsAlgo │ │ ├── Main$Edge.class │ │ ├── Main$pp.class │ │ ├── Main.class │ │ ├── Main.java │ │ └── inp.txt │ └── priorityQueue │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java └── oops.pdf ├── General ├── .gitignore ├── CP │ └── stringHashing │ │ └── rollingHash │ │ └── main.cpp ├── DP │ └── l001_twoPointerSet.cpp └── Graphs │ ├── bfs │ └── bfsToDetectCycle │ │ └── main.cpp │ ├── dijkstra │ ├── Main$Edge.class │ ├── Main.class │ └── Main.java │ ├── hamiltonianPathAndCycle │ ├── Main.java │ └── Notes.txt │ ├── topologicalSort │ └── main.cpp │ └── unionFind │ ├── lc1267.cpp │ └── unionFind.cpp ├── JSP 7 ├── 01. Recursion │ ├── 01. recursionWithArrayList │ │ └── 01. mazePath │ │ │ └── Main.java │ ├── 02. recursionOnTheWayUp │ │ └── 00. printEncoding │ │ │ └── Main.java │ └── 03. backtracking │ │ ├── 01. floodfill │ │ ├── Main.java │ │ └── Main2.java │ │ ├── 02. targetSum │ │ └── Main.java │ │ ├── 03. knightsTour │ │ └── Main.java │ │ ├── 04. nQueens │ │ └── Main.java │ │ └── Flood Fill & BackTracking 1.pdf ├── 02. LinkedList │ ├── 01. LC 206reverse │ │ └── Main.java │ ├── 02. kthFromLast │ │ └── Main.java │ ├── 03. LC 876 mid │ │ └── Main.java │ ├── 04. LC 21mergeTwoSorted │ │ └── Main.java │ ├── 05. LC 148mergeSort │ │ └── Main.java │ ├── 06. LC143 reorderList │ │ └── Main.java │ ├── 07. LC234palindrome (HW) │ │ └── Main.java │ ├── 08. LC 141 isCycle │ │ └── Main.java │ ├── 09. Adapter LL to Stack │ │ └── Main.java │ ├── 10. LC160 intersection │ │ └── Main.java │ ├── 11. LC 25 reverseKGroups │ │ └── Main.java │ ├── 12. LC 2 Add 2 Numbers │ │ └── Main.java │ └── 13. LC146 LRU Cache │ │ └── Main.java ├── 03. Time and Space │ ├── 01. bubbleSort │ │ └── Main.java │ └── 02. selectionSort │ │ └── Main.java ├── 04. Stack and Queue │ ├── 01. duplicateBrackets │ │ └── Main.java │ ├── 02. LC 20 validParenthesis │ │ └── Main.java │ ├── 03. normalStack │ │ └── Main.java │ ├── 04. dynamicStack │ │ └── Main.java │ ├── 05. queueDemo │ │ ├── Main.class │ │ └── Main.java │ ├── 06. normalQueue │ │ └── Main.java │ ├── 07. dynamicQueue │ │ └── Main.java │ └── delete │ │ ├── Main.class │ │ └── Main.java ├── 05. Binary Tree │ ├── 01. construction │ │ └── Main.java │ ├── 02. traversals │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── 03. size_height_max │ │ └── Main.java │ ├── 04. levelOrder │ │ ├── Main$Node.class │ │ ├── Main$pair.class │ │ ├── Main.class │ │ └── Main.java │ ├── 05. kLevelDown │ │ └── Main.java │ ├── 06. singleChild │ │ └── Main.java │ ├── 07. diameter │ │ ├── Main$Node.class │ │ ├── Main$Pair.class │ │ ├── Main.class │ │ ├── Main.java │ │ └── input.txt │ └── 08. tilt │ │ └── Main.java ├── 06. BST │ ├── 01. isBST │ │ └── Main.java │ ├── 02. size_sum_min_max_find │ │ └── Main.java │ ├── 03. LC 701 insertIntoBST │ │ └── Main.java │ ├── 04. LC 450 deleteFromBST │ │ └── Main.java │ ├── 05. LC 235 LCA of BST │ │ └── Main.java │ └── 06. LC 1325 remove Leaves from BST │ │ └── Main.java ├── 07. Generic Tree │ ├── 01. sizeHeightMax │ │ └── Main.java │ ├── 02. levelOrder_SingleLine │ │ └── Main.java │ ├── 03. removeLeaves │ │ └── Main.java │ ├── 04. find │ │ └── Main.java │ ├── 05. node2root │ │ └── Main.java │ ├── 06. LCA │ │ └── Main.java │ ├── 08. lineraize │ │ └── Main.java │ ├── 09. areMirror │ │ └── Main.java │ ├── 10. isSymmetric │ │ └── Main.java │ ├── 11. ceil and floor │ │ └── Main.java │ ├── 12. kthLargest │ │ └── Main.java │ ├── 13. gt Traversals Pre Post │ │ └── Main.java │ └── 14. diameter │ │ └── Main.java ├── 08. HashMap and PQ │ ├── 00. demo │ │ ├── Main.class │ │ └── Main.java │ ├── 01. maxFreq │ │ └── Main.java │ ├── 02. getCommonEle_1 │ │ └── Main.java │ ├── 03. getCommonEle_2 │ │ └── Main.java │ ├── 04. pqDemo │ │ ├── Main.class │ │ └── Main.java │ └── 05. meadianPQ │ │ └── Main.java ├── 09. Graph │ ├── 01. hasPath │ │ └── Main.java │ ├── 02. allPath │ │ └── Main.java │ ├── 03. gcc │ │ └── Main.java │ ├── 04. isConnectedGraph │ │ └── Main.java │ ├── 05. LC 200numsOfIsland │ │ └── Main.java │ ├── 06. bfs │ │ └── Main.java │ ├── 07. isCycle │ │ └── Main.java │ └── 08. isBipartite │ │ └── Main.java └── 10. DP │ ├── 01. fibo │ ├── Main.class │ └── Main.java │ ├── 02. LC70 Climbing Stairs │ └── Main.java │ ├── 03. LC746 MinCostClimbStair │ └── Main.java │ ├── 04. LC62 uniquePath │ └── Main.java │ ├── 05. goldmine │ └── Main.java │ ├── 06. targetSumSS │ └── Main.java │ ├── 07. coinChangeCombi │ └── Main.java │ ├── 08. 01knapSack │ └── Main.java │ ├── 09. countBinaryStrings │ └── Main.java │ ├── 10. LC 91 DecodeWays │ └── Main.java │ ├── 11. paintFence │ └── Main.java │ └── 12. friendsPairing │ └── Main.java ├── LRC Extended └── Level 1 │ ├── 03. Number System │ └── anyBaseMultiplication.java │ ├── 05. 2D Arrays │ ├── 1. 2D_Demo.java │ ├── 2. matrixMul.java │ ├── 3. stateOfWakanda_1.java │ └── 4. spiralDisplay.java │ └── 06. ArrayList_String_SB │ ├── demo2.class │ ├── demo2.java │ ├── demoAL.class │ ├── demoAL.java │ ├── stringDemo.class │ ├── stringDemo.java │ ├── stringEqual.class │ └── stringEqual.java └── Level 2 └── 01. recursion ├── RecursionTrees.java.pdf ├── lec001$Solution.class ├── lec001.class ├── lec001.java ├── lec002_RecursionTree.class └── lec002_RecursionTree.java /.gitignore: -------------------------------------------------------------------------------- 1 | Create -------------------------------------------------------------------------------- /Create/out.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/Create/out.exe -------------------------------------------------------------------------------- /DSA December/00. Introduction/conditions/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String [] args){ 4 | 5 | } 6 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/countDigits/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | 10 | int digits = 0; 11 | 12 | while(n != 0){ 13 | n = n/10; 14 | digits++; 15 | } 16 | 17 | System.out.println(digits); 18 | } 19 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/curiousCase/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | for(int i = 1; i*i <= n; i++){ 10 | System.out.println(i*i); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/fibonacci/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/00. Introduction/fibonacci/Main.class -------------------------------------------------------------------------------- /DSA December/00. Introduction/fibonacci/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | int a = 0; 10 | int b = 1; 11 | 12 | for(int i = 1; i<=n; i++){ 13 | System.out.println(a); 14 | int c = a + b; 15 | a = b; 16 | b = c; 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/gcdLCM/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n1 = scn.nextInt(); 8 | int n2 = scn.nextInt(); 9 | 10 | //safe 11 | int oN1 = n1; 12 | int oN2 = n2; 13 | 14 | 15 | while(n1 % n2 != 0){ 16 | int rem = n1 % n2; 17 | n1 = n2; 18 | n2 = rem; 19 | } 20 | int gcd = n2; 21 | int lcm = (oN1 * oN2) / gcd; 22 | 23 | System.out.println(gcd); 24 | System.out.println(lcm); 25 | 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/gradingSystem/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | // input - don't change this code 7 | Scanner scn = new Scanner(System.in); 8 | int marks = scn.nextInt(); 9 | // input - don't change this code 10 | 11 | if(marks > 90){ 12 | System.out.println("excellent"); 13 | } 14 | else if(marks > 80){ 15 | System.out.println("good"); 16 | } 17 | else if(marks > 70){ 18 | System.out.println("fair"); 19 | } 20 | else if(marks > 60){ 21 | System.out.println("meets expectations"); 22 | } 23 | else { 24 | System.out.println("below par"); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/isANumberPrime/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int t = scn.nextInt(); 8 | 9 | for(int times = 1; times<=t; times++){ 10 | 11 | int n = scn.nextInt(); //17 12 | int factor = 0; //count of factor 13 | for(int i = 2; i<= n; i++){ 14 | if(n%i == 0){ 15 | factor++; 16 | } 17 | } 18 | 19 | if(factor == 1){ 20 | System.out.println("prime"); 21 | } 22 | else{ 23 | System.out.println("not prime"); 24 | 25 | } 26 | 27 | 28 | } 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/isANumberPrime/optimized/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int t = scn.nextInt(); 8 | 9 | for(int times = 1; times<=t; times++){ 10 | 11 | int n = scn.nextInt(); //17 12 | int factor = 0; //count of factor 13 | for(int i = 1; i*i<= n; i++){ 14 | if(n%i == 0){ 15 | factor++; 16 | if(factor == 2){ 17 | break; 18 | } 19 | 20 | } 21 | } 22 | 23 | if(factor == 1){ 24 | System.out.println("not prime"); 25 | } 26 | else{ 27 | System.out.println("prime"); 28 | 29 | } 30 | 31 | 32 | } 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/javaDemo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String [] args){ 4 | System.out.print("Hello World"); 5 | } 6 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/javaDemo/snippet.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String [] args){ 4 | 5 | } 6 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/primeFactorization/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | for(int i = 2; i*i<=n; i++){ 9 | while(n % i == 0){ 10 | n = n/i; 11 | System.out.print(i+" "); 12 | } 13 | } 14 | 15 | 16 | //prime wala case 17 | if(n != 1){ 18 | System.out.println(n); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/primeTillN/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | public static void main(String[] args) { 5 | Scanner scn = new Scanner(System.in); 6 | int low = scn.nextInt(); 7 | int high = scn.nextInt(); 8 | 9 | for(int n = low ; n<=high; n++){ 10 | 11 | int factor = 0; //count of factor 12 | for(int i = 2; i*i<= n; i++){ 13 | if(n%i == 0){ 14 | factor++; 15 | break; 16 | } 17 | } 18 | 19 | if(factor == 0){ 20 | //prime hai 21 | System.out.println(n); 22 | 23 | } 24 | 25 | } 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/printZ/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/00. Introduction/printZ/Main.class -------------------------------------------------------------------------------- /DSA December/00. Introduction/printZ/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String [] args){ 4 | System.out.println("*****"); 5 | System.out.println(" * "); 6 | System.out.println(" * "); 7 | System.out.println(" * "); 8 | System.out.println("*****"); 9 | } 10 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/pythagoreanTriplet/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int a = scn.nextInt(); 8 | int b = scn.nextInt(); 9 | int c = scn.nextInt(); 10 | 11 | if( a*a == (b*b + c*c)){ 12 | System.out.println(true); 13 | } 14 | else if(b * b == (a*a + c*c) ){ 15 | System.out.println(true); 16 | } 17 | else if(c*c == (a*a + b*b) ){ 18 | System.out.println(true); 19 | } 20 | else{ 21 | System.out.println(false); 22 | } 23 | 24 | } 25 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/reverseOfNumber/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | while(n != 0){ 10 | int lastDigit = n % 10; 11 | System.out.println(lastDigit); 12 | n = n / 10; 13 | } 14 | 15 | } 16 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/rotateOfNumber/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | // write your code here 7 | Scanner scn = new Scanner (System.in); 8 | int n = scn.nextInt(); 9 | int k = scn.nextInt(); 10 | int nod = 0; 11 | 12 | int tmp = n; 13 | 14 | while( tmp != 0 ){ 15 | tmp = tmp / 10; 16 | nod++; 17 | } 18 | 19 | k = k % nod; 20 | 21 | if(k < 0){ 22 | k += nod; // k = k + nod 23 | } 24 | 25 | 26 | int pow = (int)Math.pow(10,k); // 10^k 27 | 28 | int left = n / pow; 29 | int right = n % pow; 30 | 31 | int mul = (int)Math.pow(10, nod-k); 32 | 33 | int ans = right * mul + left; 34 | System.out.println(ans); 35 | 36 | 37 | } 38 | } -------------------------------------------------------------------------------- /DSA December/00. Introduction/variableDemo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/00. Introduction/variableDemo/Main.class -------------------------------------------------------------------------------- /DSA December/00. Introduction/variableDemo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String [] args){ 4 | //variable declare 5 | 6 | int age = 50; 7 | System.out.println(age); 8 | } 9 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p1/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/01. patterns/p1/Main.class -------------------------------------------------------------------------------- /DSA December/01. patterns/p1/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //initial state 11 | int star = 1; 12 | int space = n-1; 13 | 14 | for(int row = 1; row<=n; row++){ 15 | //work 16 | //star 17 | //space 18 | for(int cst = 1; cst <= star; cst++){ 19 | System.out.print("*\t"); 20 | } 21 | 22 | for(int csp = 1; csp <= space; csp++){ 23 | System.out.print("\t"); 24 | } 25 | 26 | //update 27 | star = star + 1; //star += 1 star++ 28 | space = space - 1; 29 | 30 | System.out.println(); 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p10/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main{ 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | int lsp = n/2; 11 | int msp = -1; 12 | 13 | 14 | for(int row = 1 ; row <= n; row++){ 15 | 16 | //left space 17 | for(int csp = 1; csp <= lsp ; csp++){ 18 | System.out.print("\t"); 19 | } 20 | 21 | System.out.print("*\t"); 22 | 23 | 24 | //mid space 25 | for(int csp = 1; csp <= msp ; csp++){ 26 | System.out.print("\t"); 27 | } 28 | 29 | if(row != 1 && row != n){ 30 | System.out.print("*\t"); 31 | } 32 | 33 | 34 | //update 35 | if(row <= n/2){ 36 | msp += 2; 37 | lsp -= 1; 38 | } 39 | else{ 40 | msp -= 2; 41 | lsp += 1; 42 | } 43 | 44 | System.out.println(); 45 | 46 | 47 | } 48 | 49 | 50 | 51 | } 52 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p11/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | int val = 1; 10 | for(int i = 1; i<= n; i++ ){ 11 | for(int j = 1; j<=i; j++){ 12 | System.out.print(val+"\t"); 13 | val++; 14 | } 15 | System.out.println(); 16 | } 17 | 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p12/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | int a = 0, b = 1; 10 | for(int i = 1; i<= n; i++ ){ 11 | for(int j = 1; j<=i; j++){ 12 | System.out.print(a+"\t"); 13 | int c = a+b; 14 | a = b; 15 | b = c; 16 | } 17 | System.out.println(); 18 | } 19 | 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p13/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main{ 3 | public static void main(String[] args){ 4 | Scanner scn = new Scanner(System.in); 5 | 6 | int n = scn.nextInt(); 7 | for(int i = 0; i 1 && i <= n/2 && cst > 1 && cst < star){ 19 | System.out.print("\t"); 20 | } 21 | else{ 22 | System.out.print("*\t"); 23 | 24 | } 25 | } 26 | //update 27 | if(i <= n/2){ 28 | star -= 2; 29 | space += 1; 30 | } 31 | else{ 32 | star += 2; 33 | space -= 1; //spcae-- or spcae = space - 1; 34 | } 35 | System.out.println(); 36 | 37 | 38 | } 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p2/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //initial state 11 | int star = n; 12 | int space = 0; 13 | 14 | for(int row = 1; row<=n; row++){ 15 | //work 16 | //star 17 | //space 18 | for(int cst = 1; cst <= star; cst++){ 19 | System.out.print("*\t"); 20 | } 21 | 22 | for(int csp = 1; csp <= space; csp++){ 23 | System.out.print("\t"); 24 | } 25 | 26 | //update 27 | star = star - 1; //star += 1 star++ 28 | space = space + 1; 29 | 30 | System.out.println(); 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p3/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //initial state 11 | int star = 1; 12 | int space = n-1; 13 | 14 | for(int row = 1; row<=n; row++){ 15 | //work 16 | //star 17 | //space 18 | 19 | for(int csp = 1; csp <= space; csp++){ 20 | System.out.print("\t"); 21 | } 22 | for(int cst = 1; cst <= star; cst++){ 23 | System.out.print("*\t"); 24 | } 25 | 26 | 27 | 28 | //update 29 | star = star + 1; //star += 1 star++ 30 | space = space - 1; 31 | 32 | System.out.println(); 33 | } 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p4/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //initial state 11 | int star = n; 12 | int space = 0; 13 | 14 | for(int row = 1; row<=n; row++){ 15 | //work 16 | //star 17 | //space 18 | 19 | for(int csp = 1; csp <= space; csp++){ 20 | System.out.print("\t"); 21 | } 22 | for(int cst = 1; cst <= star; cst++){ 23 | System.out.print("*\t"); 24 | } 25 | 26 | 27 | 28 | //update 29 | star = star - 1; //star += 1 star++ 30 | space = space + 1; 31 | 32 | System.out.println(); 33 | } 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p5/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //intial 11 | int star = 1; 12 | int space = n/2; 13 | 14 | for(int row = 1; row <= n; row++){ 15 | for(int csp = 1; csp<=space; csp++){ 16 | System.out.print("\t"); 17 | } 18 | for(int cst = 1; cst <= star; cst++){ 19 | System.out.print("*\t"); 20 | } 21 | 22 | if(row <= n/2){ 23 | star = star + 2; 24 | space = space - 1; 25 | } 26 | else{ 27 | star = star - 2; 28 | space = space + 1; 29 | } 30 | System.out.println(); 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p6/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | 8 | int n = scn.nextInt(); 9 | 10 | //intial 11 | int star = n/2 + 1; 12 | int space = 1; 13 | 14 | 15 | for(int row = 1; row <= n; row++){ 16 | //star 17 | for(int cst = 1; cst <= star; cst++){ 18 | System.out.print("* "); 19 | } 20 | //space 21 | for(int csp = 1; csp <= space; csp++){ 22 | System.out.print(" "); 23 | } 24 | //star 25 | for(int cst = 1; cst <= star; cst++){ 26 | System.out.print("* "); 27 | } 28 | System.out.println(); 29 | 30 | //update 31 | if(row <= n/2){ 32 | star -= 1; 33 | space += 2; 34 | } 35 | else{ 36 | star += 1; 37 | space -= 2; 38 | } 39 | 40 | 41 | 42 | 43 | } 44 | 45 | } 46 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p7/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | int star = 1; 10 | int space = 0; 11 | 12 | 13 | for(int row = 1; row<=n; row++){ 14 | 15 | for(int csp = 1; csp<=space; csp++){ 16 | System.out.print("\t"); 17 | } 18 | System.out.print("*\t"); 19 | 20 | System.out.println(); 21 | 22 | 23 | space++; 24 | } 25 | 26 | 27 | 28 | } 29 | } -------------------------------------------------------------------------------- /DSA December/01. patterns/p9/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | Scanner scn = new Scanner(System.in); 7 | int n = scn.nextInt(); 8 | 9 | 10 | for(int i = 0; i x){ 15 | j = mid-1; 16 | } 17 | else{ 18 | i = mid + 1; 19 | } 20 | } 21 | return -1; 22 | } 23 | 24 | public static void main(String[] args) throws Exception { 25 | Scanner scn = new Scanner(System.in); 26 | int size = 8; 27 | int [] arr = {5,7,10,11,14,20,26,30}; 28 | int x = 20; 29 | int ans = binarySearch(arr, x); 30 | System.out.println(ans); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /DSA December/03. arrays/demo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/03. arrays/demo/Main.class -------------------------------------------------------------------------------- /DSA December/03. arrays/demo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Main{ 4 | 5 | public static void main(String [] args){ 6 | // int a = 6; 7 | // int a; 8 | // a = 6; 9 | 10 | 11 | //create 12 | int [] arr; 13 | arr = new int[5]; 14 | arr[0] = 10; 15 | arr[1] = 20; 16 | arr[2] = 30; 17 | arr[3] = 40; 18 | arr[4] = 50; 19 | System.out.println(arr[2]); 20 | } 21 | } -------------------------------------------------------------------------------- /DSA December/03. arrays/inverse/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main{ 5 | public static void display(int[] a){ 6 | StringBuilder sb = new StringBuilder(); 7 | 8 | for(int val: a){ 9 | sb.append(val + "\n"); 10 | } 11 | System.out.println(sb); 12 | } 13 | 14 | public static int[] inverse(int[] a){ 15 | int [] nArr = new int[a.length]; 16 | for(int i = 0; i max){ 13 | max = currVal; 14 | } 15 | else if(currVal < min){ 16 | min = currVal; 17 | } 18 | } 19 | return max-min; 20 | } 21 | 22 | 23 | public static void main(String[] args) throws Exception { 24 | Scanner scn = new Scanner(System.in); 25 | int n = scn.nextInt(); 26 | int [] arr = new int[n]; 27 | for(int i = 0; i= 0 && i < n){ 21 | int me = arr[i][j]; 22 | if(me == x){ 23 | System.out.println(i); 24 | System.out.println(j); 25 | return; 26 | } 27 | else if (me > x){ 28 | j--; 29 | } 30 | else{ 31 | i++; 32 | } 33 | } 34 | 35 | 36 | 37 | System.out.println("Not Found"); 38 | 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /DSA December/04. 2dArray/sow2/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | //gap strategy 6 | public static void sow2(int [][] arr){ 7 | int n = arr.length; 8 | for(int gap = 0 ; gap < n; gap++){ 9 | for(int i = 0, j = gap; j < n; i++, j++){ 10 | System.out.println(arr[i][j]); 11 | } 12 | } 13 | } 14 | public static void main(String[] args) throws Exception { 15 | Scanner scn = new Scanner(System.in); 16 | int n = scn.nextInt(); 17 | int [][] arr = new int[n][n]; 18 | for(int i = 0; i=0 ; i--){ 35 | System.out.println(arr[i][j] + " "); 36 | } 37 | } 38 | } 39 | } 40 | 41 | public static void main(String[] args) throws Exception { 42 | int n = scn.nextInt(); 43 | int m = scn.nextInt(); 44 | int [][] arr = new int[n][m]; 45 | input(arr); 46 | 47 | sow(arr); //sow is state of wakanda 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/demoString/Main.java: -------------------------------------------------------------------------------- 1 | 2 | import java.util.Scanner; 3 | public class Main 4 | { 5 | 6 | 7 | public static void main(String[] args) { 8 | Scanner scn = new Scanner(System.in); 9 | //String s = "pepcoding"; 10 | 11 | //2. charAt 12 | //System.out.println(s.charAt(5)); 13 | 14 | 15 | //3. length() 16 | //System.out.println(s.length()); 17 | 18 | //4. input====================== 19 | //String name = scn.next(); 20 | 21 | 22 | String name = scn.nextLine(); 23 | System.out.println("Users name is " + name); 24 | 25 | 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/demoString/demo2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/05. String_SB_AL/demoString/demo2.class -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/demoString/demo2.java: -------------------------------------------------------------------------------- 1 | 2 | import java.util.Scanner; 3 | public class demo2 4 | { 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | // String s = "aman"; 10 | // int val = 4; 11 | // s = val + s; 12 | 13 | // System.out.println(s.length()); 14 | 15 | //=============String .equals ()============ 16 | String a = "hello"; 17 | String b = "hello"; 18 | String c = new String("hello"); 19 | // if(a == c){ 20 | if(a.equals(c)){ 21 | System.out.println("Yes it is equal"); 22 | } 23 | else{ 24 | System.out.println("No it is not equal"); 25 | 26 | } 27 | 28 | String s = ""; 29 | 30 | 31 | 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/printPalindromic/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static String isPalindrome(String s ){ 7 | int i = 0; 8 | int j = s.length()-1; 9 | while(i<=j){ 10 | char left = s.charAt(i); 11 | char right = s.charAt(j); 12 | 13 | if(left != right){ 14 | return false; 15 | } 16 | i++; 17 | j--; 18 | } 19 | return true; 20 | } 21 | public static void solution(String str){ 22 | int n = str.length(); 23 | for(int st = 0; st al){ 15 | for(int i =al.size()-1 ; i>=0 ; i--){ 16 | if(isPrime(al.get(i))) 17 | al.remove(i); 18 | } 19 | 20 | } 21 | public static void main(String[] args) { 22 | Scanner scn = new Scanner(System.in); 23 | int n = scn.nextInt(); 24 | ArrayList al = new ArrayList<>(); 25 | for(int i = 0 ; i < n; i++){ 26 | al.add(scn.nextInt()); 27 | } 28 | solution(al); 29 | System.out.println(al); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/stringBuilderDemo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/05. String_SB_AL/stringBuilderDemo/Main.class -------------------------------------------------------------------------------- /DSA December/05. String_SB_AL/stringBuilderDemo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | public class Main{ 3 | 4 | public static void main(String [] args){ 5 | Scanner scn = new Scanner(System.in); 6 | // String s = ; 7 | 8 | 9 | StringBuilder sb = new StringBuilder(scn.next()); 10 | 11 | // StringBuilder sb = new StringBuilder("pepcoding"); 12 | //update -- replace 13 | sb.setCharAt(3, 'z'); 14 | 15 | //pepzoding 16 | //delete 17 | sb.deleteCharAt(4); 18 | 19 | 20 | //pepzding 21 | sb.append(100); 22 | 23 | //insert 24 | sb.insert(2, 'M'); 25 | 26 | 27 | System.out.println(sb); 28 | System.out.println("Length is " + sb.length()); 29 | 30 | 31 | } 32 | } 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /DSA December/06. Recursion/backtracking/floodFill/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int m = scn.nextInt(); 10 | int[][] arr = new int[n][m]; 11 | for (int i = 0; i < n; i++) { 12 | for (int j = 0; j < m; j++) { 13 | arr[i][j] = scn.nextInt(); 14 | } 15 | } 16 | floodfill(arr, 0, 0, ""); 17 | } 18 | 19 | // asf -> answer so far 20 | public static void floodfill(int[][] maze, int sr, int sc, String asf) { 21 | if(sr >= maze.length || sr < 0 || sc >= maze[0].length || sc < 0 || maze[sr][sc] == 1){ 22 | return; 23 | } 24 | if(sr == maze.length-1 && sc == maze[0].length-1 ){ 25 | System.out.println(asf); 26 | return; 27 | } 28 | //mark 29 | maze[sr][sc] = 1; 30 | 31 | //calls 32 | floodfill(maze, sr-1, sc, asf+"t"); 33 | floodfill(maze, sr, sc-1, asf+"l"); 34 | floodfill(maze, sr+1, sc, asf+"d"); 35 | floodfill(maze, sr, sc+1, asf+"r"); 36 | 37 | //unmark 38 | maze[sr][sc] = 0; 39 | 40 | 41 | 42 | 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /DSA December/06. Recursion/backtracking/tarSumSS/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int [] arr = new int[n]; 10 | for(int i = 0; i tar) 22 | return; 23 | if(idx == arr.length){ 24 | if(sos == tar){ 25 | System.out.println(set + "."); 26 | } 27 | return; 28 | } 29 | //include 30 | printTargetSumSubsets(arr, idx+1, set + arr[idx] +", ", sos + arr[idx], tar ); 31 | //exclude 32 | printTargetSumSubsets(arr, idx+1, set, sos, tar ); 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/intro/factorial/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int ans = factorial(n); 10 | System.out.println(ans); 11 | } 12 | 13 | public static int factorial(int n){ 14 | if(n == 0){ 15 | return 1; 16 | } 17 | int recAns = factorial(n-1); 18 | int myAns = n * recAns; 19 | return myAns; 20 | 21 | // return n == 0 ? 1 : n * factorial(n-1); 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/intro/pdi/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | pdi(n); 10 | } 11 | 12 | public static void pdi(int n){ 13 | if(n == 0){ 14 | return; 15 | } 16 | System.out.println(n); 17 | pdi(n-1); 18 | System.out.println(n); 19 | 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/intro/powLinear/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int x = scn.nextInt(); 9 | int n = scn.nextInt(); 10 | int ans = power(x,n); 11 | System.out.println(ans); 12 | } 13 | 14 | public static int power(int x, int n){ 15 | if(n == 0){ 16 | return 1; 17 | } 18 | int recAns = power(x, n-1); 19 | int myAns = x * recAns; 20 | return myAns; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/intro/printDecresing/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | printDecreasing(n); 10 | } 11 | 12 | public static void printDecreasing(int n){ 13 | if(n == 0){ 14 | //base 15 | return; 16 | } 17 | //work 18 | System.out.println(n); 19 | printDecreasing(n-1); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/intro/printIncreasing/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | printIncreasing(n); 10 | } 11 | 12 | public static void printIncreasing(int n){ 13 | if(n == 0){ 14 | return; 15 | } 16 | printIncreasing(n-1); 17 | System.out.println(n); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/recursionOntheWayUp/printEncoding/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | printEncodings(s,""); 10 | } 11 | 12 | public static void printEncodings(String str, String ans) { 13 | if(str.length() == 0){ 14 | System.out.println(ans); 15 | return; 16 | } 17 | 18 | if(str.charAt(0) == '0') 19 | return; 20 | 21 | char ch = str.charAt(0); //'6' 22 | int x = ch-'0'; //int -> 6 23 | 24 | printEncodings(str.substring(1), ans + (char)(x + 'a' - 1)); 25 | 26 | if(str.length()>1){ 27 | char ch2 = str.charAt(1); 28 | int y = ch2 - '0'; 29 | 30 | int val = x*10 + y; //65 31 | if(val <= 26){ 32 | printEncodings(str.substring(2), ans + (char)(val + 'a' - 1)); 33 | } 34 | } 35 | 36 | 37 | 38 | 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/recursionOntheWayUp/printKPC/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | static String [] codes = {".;", "abc" , "def", "ghi" , "jkl" ,"mno" , "pqrs" , "tu" , "vwx", "yz"}; 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | printKPC(s,""); 10 | } 11 | 12 | public static void printKPC (String str, String asf) { 13 | if(str.length() == 0){ 14 | System.out.println(asf); 15 | return; 16 | } 17 | 18 | 19 | char ch = str.charAt(0); //'7' 20 | String ros = str.substring(1); //"8" 21 | 22 | 23 | int idx = ch - '0'; 24 | String currCode = codes[idx]; 25 | 26 | for(int i = 0; i= 0){ 19 | printStairPaths(n-jump, path + jump); 20 | } 21 | } 22 | 23 | 24 | 25 | 26 | // if(n-1 >= 0){ 27 | // printStairPaths(n-1, path + "1"); 28 | // } 29 | // if(n-2 >= 0){ 30 | // printStairPaths(n-2, path + "2"); 31 | // } 32 | // if(n-3 >= 0){ 33 | // printStairPaths(n-3, path + "3"); 34 | // } 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/recursionWithAL/getSS/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | ArrayList ans = gss(s); 10 | System.out.println(ans); 11 | } 12 | 13 | public static ArrayList gss(String str) { 14 | if(str.length() == 0 ){ 15 | ArrayList base = new ArrayList<>(); 16 | base.add(""); 17 | return base; 18 | } 19 | char ch = str.charAt(0); //a 20 | String ros = str.substring(1); //bc 21 | 22 | ArrayList recAns = gss(ros); 23 | ArrayList myAns = new ArrayList<>(); 24 | 25 | //not included a 26 | for(String x : recAns){ 27 | myAns.add(x); 28 | } 29 | //included a 30 | for(String x : recAns){ 31 | myAns.add(ch + x); 32 | } 33 | return myAns; 34 | 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/recursionWithArray/allIndices/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 8 | int n = Integer.parseInt(br.readLine()); 9 | int[] arr = new int[n]; 10 | 11 | for (int i = 0; i < n; i++) { 12 | arr[i] = Integer.parseInt(br.readLine()); 13 | } 14 | int x = Integer.parseInt(br.readLine()); 15 | int[] iarr = allIndices(arr, x, 0, 0); 16 | 17 | if(iarr.length == 0){ 18 | System.out.println(); 19 | return; 20 | } 21 | 22 | for(int i = 0; i < iarr.length; i++){ 23 | System.out.println(iarr[i]); 24 | } 25 | } 26 | 27 | public static int[] allIndices(int[] arr, int x, int idx, int count) { 28 | // write ur code here 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /DSA December/06. Recursion/recursionWithArray/displayReverse/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int [] arr = new int[n]; 10 | for(int i = 0; i recAns){ 23 | return mySelf; 24 | } 25 | else{ 26 | return recAns; 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /DSA December/07. OOPs/Nodes/Main$student.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/07. OOPs/Nodes/Main$student.class -------------------------------------------------------------------------------- /DSA December/07. OOPs/Nodes/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/07. OOPs/Nodes/Main.class -------------------------------------------------------------------------------- /DSA December/07. OOPs/Nodes/node/Main.java: -------------------------------------------------------------------------------- 1 | public class Main{ 2 | 3 | public static class Node{ 4 | //Data 5 | int data; 6 | Node next; 7 | 8 | //contructor 9 | Node(){ 10 | 11 | } 12 | Node(int data){ 13 | this.data = data; 14 | } 15 | 16 | } 17 | 18 | public static void main(String [] args){ 19 | 20 | 21 | } 22 | 23 | 24 | } -------------------------------------------------------------------------------- /DSA December/08. LinkedList/LC141_isCycle/Main.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode(int x) { 7 | * val = x; 8 | * next = null; 9 | * } 10 | * } 11 | */ 12 | public class Solution { 13 | public boolean hasCycle(ListNode head) { 14 | if(head == null || head.next == null) 15 | return false; 16 | ListNode slow = head; 17 | ListNode fast = head; 18 | 19 | while(fast != null && fast.next != null){ 20 | slow = slow.next; 21 | fast = fast.next.next; 22 | if(slow == fast) 23 | break; 24 | } 25 | 26 | // if(slow == fast){ 27 | // //cycle 28 | // return true; 29 | // } 30 | // else{ 31 | // //cycle not prse 32 | // return false; 33 | // } 34 | 35 | return slow == fast; 36 | 37 | } 38 | } -------------------------------------------------------------------------------- /DSA December/08. LinkedList/LC19_removeFromEnd/Main.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * public class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode() {} 7 | * ListNode(int val) { this.val = val; } 8 | * ListNode(int val, ListNode next) { this.val = val; this.next = next; } 9 | * } 10 | */ 11 | class Solution { 12 | public ListNode removeNthFromEnd(ListNode head, int n) { 13 | if(head == null || head.next == null){ 14 | return null; 15 | } 16 | 17 | ListNode slow = head; 18 | ListNode fast = head; 19 | 20 | for(int i = 0; i= 0){ //pay 12 | dp[d] += dp[d-coins[c]]; 13 | } 14 | } 15 | } 16 | 17 | return dp[tar]; 18 | 19 | } 20 | 21 | 22 | 23 | public static void main(String[] args) throws Exception { 24 | Scanner scn = new Scanner(System.in); 25 | int n = scn.nextInt(); 26 | int [] coins = new int[n]; 27 | for(int i = 0; i= 0){ //pay 12 | dp[d] += dp[d-coins[c]]; 13 | } 14 | } 15 | } 16 | 17 | return dp[tar]; 18 | 19 | } 20 | 21 | 22 | 23 | public static void main(String[] args) throws Exception { 24 | Scanner scn = new Scanner(System.in); 25 | int n = scn.nextInt(); 26 | int [] coins = new int[n]; 27 | for(int i = 0; i= 0){ 12 | int rc = bag - wt[i]; 13 | int remCapAns = dp[rc]; 14 | int myAns = val[i] + remCapAns; 15 | 16 | maxProfit = Math.max(myAns, maxProfit); 17 | } 18 | 19 | } 20 | dp[bag] = maxProfit; 21 | } 22 | 23 | } 24 | 25 | public static void main(String[] args) throws Exception { 26 | Scanner scn = new Scanner(System.in); 27 | int n = scn.nextInt(); 28 | int [] val = new int[n]; 29 | for(int i = 0; i st = new Stack<>(); 4 | for(int i = 0; i st = new Stack<>(); 8 | for(int i = 0; i st = new Stack<>(); 6 | // ArrayList arr = new ArrayList<>(); 7 | 8 | //Overflow 9 | // st.push(10); 10 | // st.push(20); 11 | // st.push(30); 12 | // st.push(40); 13 | // st.push(50); 14 | // while(true) 15 | // { 16 | // st.push(10); 17 | // } 18 | 19 | 20 | //Underflow 21 | // st.pop(); 22 | st.peek(); 23 | 24 | 25 | 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/constructAndDisplay/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/constructAndDisplay/Main$Node.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/constructAndDisplay/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/constructAndDisplay/Main$pair.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/constructAndDisplay/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/constructAndDisplay/Main.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/levelOrder/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/levelOrder/Main$Node.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/levelOrder/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/levelOrder/Main$pair.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/levelOrder/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/levelOrder/Main.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/maxSizeHeight/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxDepth(TreeNode root) { 3 | if(root == null){ 4 | return 0; 5 | } 6 | 7 | int lh = maxDepth(root.left); 8 | int rh = maxDepth(root.right); 9 | 10 | int my = Math.max(lh, rh)+1; 11 | return my; 12 | } 13 | } -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/preOrder_LC144/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public void preOrder(TreeNode root, List ans){ 4 | if(root == null) 5 | return; 6 | ans.add(root.val); 7 | preOrder(root.left, ans); 8 | preOrder(root.right, ans); 9 | } 10 | public List preorderTraversal(TreeNode root) { 11 | List ans = new ArrayList<>(); 12 | preOrder(root, ans); 13 | return ans; 14 | } 15 | } -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/traversalsRecursive/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/traversalsRecursive/Main$Node.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/traversalsRecursive/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/traversalsRecursive/Main$pair.class -------------------------------------------------------------------------------- /DSA December/11. BinaryTree/traversalsRecursive/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/11. BinaryTree/traversalsRecursive/Main.class -------------------------------------------------------------------------------- /DSA December/12. BST/02. LC 98 isBST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | long prev = Long.MIN_VALUE; 3 | public boolean isValidBST(TreeNode root) { 4 | if(root == null) 5 | return true; 6 | 7 | boolean la = isValidBST(root.left); 8 | if(la == false) 9 | return false; 10 | 11 | 12 | if(prev >= root.val) 13 | return false; 14 | prev = root.val; 15 | 16 | boolean ra = isValidBST(root.right); 17 | if(ra == false) 18 | return false; 19 | 20 | 21 | return true; 22 | } 23 | } -------------------------------------------------------------------------------- /DSA December/12. BST/03. minimum/Main.java: -------------------------------------------------------------------------------- 1 | //https://practice.geeksforgeeks.org/problems/minimum-element-in-bst/1/# 2 | 3 | class Tree { 4 | // Function to find the minimum element in the given BST. 5 | int minValue(Node node) { 6 | if(node == null) 7 | return -1; 8 | 9 | Node curr = node; 10 | while(curr.left != null) 11 | curr = curr.left; 12 | return curr.data; 13 | } 14 | } -------------------------------------------------------------------------------- /DSA December/12. BST/04. createBST LC 108/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public TreeNode createBST(int [] nums, int i, int j){ 4 | if(i > j){ 5 | return null; 6 | } 7 | int mid = (i + j) / 2; 8 | TreeNode node = new TreeNode(nums[mid]); 9 | node.left = createBST(nums, i, mid-1); 10 | node.right = createBST(nums, mid + 1, j); 11 | 12 | return node; 13 | } 14 | 15 | public TreeNode sortedArrayToBST(int[] nums) { 16 | if(nums.length == 0 ) 17 | return null; 18 | return createBST(nums, 0, nums.length-1); 19 | } 20 | } -------------------------------------------------------------------------------- /DSA December/12. BST/05. LC 700 Search In BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode searchBST(TreeNode root, int val) { 3 | if(root == null) 4 | return null; 5 | if(root.val == val){ 6 | return root; 7 | } 8 | else if(root.val < val){ 9 | return searchBST(root.right, val); 10 | } 11 | else{ 12 | return searchBST(root.left, val); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /DSA December/12. BST/06. LC 701 Add In BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode insertIntoBST(TreeNode root, int val) { 3 | if(root == null) 4 | return new TreeNode(val); 5 | else if(root.val < val){ 6 | root.right = insertIntoBST(root.right, val); 7 | } 8 | else if(root.val > val){ 9 | root.left = insertIntoBST(root.left, val); 10 | } 11 | return root; 12 | } 13 | } -------------------------------------------------------------------------------- /DSA December/12. BST/07. LC 450 Remove from BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int max(TreeNode node){ 3 | TreeNode curr = node; 4 | while(curr.right != null) 5 | curr =curr.right; 6 | return curr.val; 7 | } 8 | public TreeNode deleteNode(TreeNode root, int key) { 9 | if(root == null){ 10 | return null; 11 | } 12 | 13 | if(key > root.val){ 14 | root.right = deleteNode(root.right, key); 15 | } 16 | else if(key < root.val){ 17 | root.left = deleteNode(root.left, key); 18 | } 19 | else{ 20 | //== 21 | //0 child || 1 child 22 | if(root.left == null || root.right == null ){ 23 | return root.left != null ? root.left : root.right; 24 | } 25 | 26 | // 2 child 27 | int maxEle = max(root.left); 28 | root.val = maxEle; 29 | root.left = deleteNode(root.left, maxEle); 30 | 31 | } 32 | return root; 33 | } 34 | } -------------------------------------------------------------------------------- /DSA December/12. BST/08. LC 235 LCA of BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 3 | TreeNode curr = root; 4 | while(curr != null){ 5 | if(p.val < curr.val && q.val < curr.val){ 6 | curr = curr.left; 7 | } 8 | else if(p.val > curr.val && q.val > curr.val){ 9 | curr = curr.right; 10 | } 11 | else{ 12 | //divergent 13 | return curr; 14 | } 15 | } 16 | 17 | return null; 18 | } 19 | } -------------------------------------------------------------------------------- /DSA December/14. Graph/01. intro/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/14. Graph/01. intro/Main$Edge.class -------------------------------------------------------------------------------- /DSA December/14. Graph/01. intro/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/14. Graph/01. intro/Main.class -------------------------------------------------------------------------------- /DSA December/14. Graph/05. LC 200 Number of Island/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | static int [][] dir = {{1,0},{0,1}, {-1,0}, {0,-1}}; 4 | public void dfs(char [][] grid, int i, int j){ 5 | grid[i][j] = '0'; 6 | 7 | for(int [] d : dir){ 8 | int r = i + d[0]; 9 | int c = j + d[1]; 10 | 11 | if(r < grid.length && r >= 0 && c < grid[0].length && c >= 0 && grid[r][c] == '1') 12 | dfs(grid, r, c); 13 | } 14 | 15 | 16 | } 17 | public int numIslands(char[][] grid) { 18 | int n = grid.length; 19 | int m = grid[0].length; 20 | int ans = 0; 21 | for(int i = 0; i hm = new HashMap<>(); 16 | 17 | //Step 1 18 | for(int ele : a){ 19 | hm.put(ele , hm.getOrDefault(ele, 0)+1); 20 | } 21 | 22 | // Step 2 23 | for(int ele : b){ 24 | if(hm.containsKey(ele)){ 25 | System.out.println(ele); 26 | 27 | int oldVal = hm.get(ele); 28 | hm.put(ele, oldVal-1); 29 | 30 | if(hm.get(ele) == 0){ 31 | hm.remove(ele); 32 | } 33 | } 34 | } 35 | 36 | 37 | } 38 | 39 | public static void main(String[] args) throws Exception { 40 | 41 | int n1 = scn.nextInt(); 42 | int [] a = new int[n1]; 43 | input(a); 44 | int n2 = scn.nextInt(); 45 | int [] b = new int[n2]; 46 | input(b); 47 | solveHashMap(a,b); 48 | 49 | 50 | 51 | 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /DSA December/15. HashMap and Heap/05. kLargestEle/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 8 | int n = Integer.parseInt(br.readLine()); 9 | int[] arr = new int[n]; 10 | 11 | for (int i = 0; i < n; i++) { 12 | arr[i] = Integer.parseInt(br.readLine()); 13 | } 14 | 15 | int k = Integer.parseInt(br.readLine()); 16 | 17 | PriorityQueue pq = new PriorityQueue<>(); 18 | 19 | for(int i = 0 ; i pq.peek()){ 25 | pq.remove(); 26 | pq.add(arr[i]); 27 | } 28 | } 29 | } 30 | while(pq.size() != 0) 31 | System.out.println(pq.remove()); 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /DSA December/15. HashMap and Heap/demo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/15. HashMap and Heap/demo/Main.class -------------------------------------------------------------------------------- /DSA December/16. Time and Space/06. sort 0 1/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void sort01(int[] arr){ 7 | int i = 0; 8 | int j = 0; 9 | int n = arr.length; 10 | while(i < n){ 11 | if(arr[i] == 0){ 12 | swap(arr, i, j); 13 | i++; 14 | j++; 15 | } 16 | else{ 17 | i++; 18 | } 19 | } 20 | 21 | } 22 | 23 | // used for swapping ith and jth elements of array 24 | public static void swap(int[] arr, int i, int j) { 25 | System.out.println("Swapping index " + i + " and index " + j); 26 | int temp = arr[i]; 27 | arr[i] = arr[j]; 28 | arr[j] = temp; 29 | } 30 | 31 | public static void print(int[] arr){ 32 | for(int i = 0 ; i < arr.length; i++){ 33 | System.out.println(arr[i]); 34 | } 35 | } 36 | public static void main(String[] args) throws Exception { 37 | Scanner scn = new Scanner(System.in); 38 | int n = scn.nextInt(); 39 | int[] arr = new int[n]; 40 | for(int i = 0 ;i < n; i++){ 41 | arr[i] = scn.nextInt(); 42 | } 43 | sort01(arr); 44 | print(arr); 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /DSA December/extra/dijkstraAlgo/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/dijkstraAlgo/Main$Edge.class -------------------------------------------------------------------------------- /DSA December/extra/dijkstraAlgo/Main$pp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/dijkstraAlgo/Main$pp.class -------------------------------------------------------------------------------- /DSA December/extra/dijkstraAlgo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/dijkstraAlgo/Main.class -------------------------------------------------------------------------------- /DSA December/extra/dijkstraAlgo/inp.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 9 3 | 0 1 10 4 | 1 2 10 5 | 2 3 10 6 | 0 3 40 7 | 3 4 2 8 | 4 5 3 9 | 5 6 3 10 | 4 6 8 11 | 2 5 5 12 | 0 -------------------------------------------------------------------------------- /DSA December/extra/hashset/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/hashset/Main.class -------------------------------------------------------------------------------- /DSA December/extra/hashset/Main.java: -------------------------------------------------------------------------------- 1 | /* 2 | add, remove, size, get, update, find 3 | */ 4 | 5 | 6 | import java.util.HashSet; 7 | 8 | 9 | public class Main 10 | { 11 | public static void main(String[] args) { 12 | //Hashset createion 13 | HashSet hs = new HashSet<>(); 14 | 15 | 16 | //add 17 | hs.add(80); 18 | hs.add(20); 19 | hs.add(30); 20 | hs.add(60); 21 | hs.add(60); 22 | hs.add(70); 23 | hs.add(70); 24 | hs.add(40); 25 | 26 | 27 | // System.out.println(hs); 28 | 29 | //REMOVE 30 | hs.remove(30); 31 | 32 | 33 | //size 34 | int size = hs.size(); 35 | 36 | 37 | //get or find 38 | boolean is10 = hs.contains(10); //false 39 | boolean is20 = hs.contains(20); //true 40 | 41 | System.out.println(is10); 42 | System.out.println(is20); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /DSA December/extra/lambda/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/lambda/Main.class -------------------------------------------------------------------------------- /DSA December/extra/lambda/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main 3 | { 4 | public static void main(String[] args) { 5 | // int [] arr = {1,6,3,6,9,3,7}; 6 | int [][] arr = {{-1,4}, 7 | {-5,7}, 8 | {-3,12}, 9 | {-18,2}, 10 | {-6,10}}; 11 | 12 | Arrays.sort(arr, (a,b)->{ 13 | return a[0] - b[0]; 14 | }); 15 | for(int [] d : arr){ 16 | System.out.println(d[0] + " " + d[1]); 17 | } 18 | 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DSA December/extra/lambda/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/lambda/output.txt -------------------------------------------------------------------------------- /DSA December/extra/primsAlgo/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/primsAlgo/Main$Edge.class -------------------------------------------------------------------------------- /DSA December/extra/primsAlgo/Main$pp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/primsAlgo/Main$pp.class -------------------------------------------------------------------------------- /DSA December/extra/primsAlgo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/primsAlgo/Main.class -------------------------------------------------------------------------------- /DSA December/extra/primsAlgo/inp.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 8 3 | 0 1 10 4 | 1 2 10 5 | 2 3 10 6 | 0 3 40 7 | 3 4 2 8 | 4 5 3 9 | 5 6 3 10 | 4 6 8 11 | -------------------------------------------------------------------------------- /DSA December/extra/priorityQueue/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/priorityQueue/Main$pair.class -------------------------------------------------------------------------------- /DSA December/extra/priorityQueue/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/DSA December/extra/priorityQueue/Main.class -------------------------------------------------------------------------------- /FJP 3/02. Array/l001.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/02. Array/l001.class -------------------------------------------------------------------------------- /FJP 3/03. 2D Array/search2D/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | 7 | public static void search2D(int [][] arr, int x){ 8 | //top - right 9 | int n = arr.length; 10 | int i = 0; 11 | int j = n-1; 12 | 13 | while( j>=0 && i <= n-1 ){ 14 | int me = arr[i][j]; 15 | 16 | if(me == x){ 17 | System.out.println(i); 18 | System.out.println(j); 19 | return; 20 | } 21 | else if( me > x){ 22 | j--; 23 | } 24 | else{ 25 | i++; 26 | } 27 | } 28 | 29 | System.out.println("Not Found"); 30 | } 31 | 32 | 33 | 34 | 35 | public static void main(String[] args) throws Exception { 36 | Scanner scn = new Scanner(System.in); 37 | int n = scn.nextInt(); 38 | int [][] arr = new int[n][n]; 39 | for(int i = 0; i al = new ArrayList<>(); 12 | 13 | //2.add Values 14 | al.add(10); 15 | for(int x : data) 16 | al.add(x); 17 | 18 | //3. How to print arrayList 19 | System.out.println(al); 20 | 21 | 22 | // for(int i = 0; i al = new ArrayList<>(); 17 | for(int i = 0; i<5; i++) 18 | { 19 | al.add(i+10); 20 | } 21 | 22 | System.out.println("Now Size is " + al.size()); 23 | System.out.println(al); 24 | //delete 25 | al.remove(2); 26 | System.out.println(al); 27 | 28 | //3. set is used to update 29 | System.out.println("now using set function"); 30 | System.out.println(al); 31 | al.set(1, 100); //(idx, val) 32 | System.out.println(al); 33 | 34 | 35 | 36 | } 37 | } -------------------------------------------------------------------------------- /FJP 3/04. String_SB_AL/printPalSS/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | 7 | 8 | 9 | 10 | 11 | public static boolean isPalindrome(String s){ 12 | int i = 0; 13 | int j = s.length()-1; 14 | while(i<=j){ 15 | if(s.charAt(i) != s.charAt(j)) 16 | return false; 17 | i++; 18 | j--; 19 | } 20 | return true; 21 | } 22 | 23 | public static void solution(String s){ 24 | int n = s.length(); 25 | for(int st = 0; st 1){ 32 | ans += count; 33 | count = 1; 34 | } 35 | ans += curr; 36 | } 37 | } 38 | if(count > 1) 39 | ans += count; 40 | 41 | return ans; 42 | } 43 | public static void main(String[] args) { 44 | Scanner scn = new Scanner(System.in); 45 | String str = scn.next(); 46 | System.out.println(compression1(str)); 47 | System.out.println(compression2(str)); 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /FJP 3/04. String_SB_AL/stringDemo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/04. String_SB_AL/stringDemo.class -------------------------------------------------------------------------------- /FJP 3/04. String_SB_AL/stringDemo2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/04. String_SB_AL/stringDemo2.class -------------------------------------------------------------------------------- /FJP 3/04. String_SB_AL/stringDemo2.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | public class stringDemo2 3 | { 4 | public static void main(String[] args) { 5 | Scanner scn = new Scanner(System.in); 6 | // String a = "hello"; 7 | String b = "hello"; 8 | String c = new String("hello"); 9 | 10 | 11 | // if(c == b) 12 | // { 13 | // System.out.println("Yes"); 14 | // } 15 | // else{ 16 | // System.out.println("No"); 17 | // } 18 | 19 | if(c.equals(b) == true) 20 | { 21 | System.out.println("Yes"); 22 | } 23 | else{ 24 | System.out.println("No"); 25 | } 26 | 27 | 28 | 29 | 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /FJP 3/04. String_SB_AL/toggleCase/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static String toggleCase(String str){ 7 | StringBuilder ans = new StringBuilder(); 8 | for(int i = 0; i= 'A' && ch <= 'Z'){ 15 | //ye char upper case hai or hume isse lower banana hai 16 | char lc = (char)(ch - 'A' + 'a'); 17 | ans.append(lc); 18 | } 19 | else{ 20 | //ye char lower case hai or hume isse upper banana hai 21 | char uc = (char)(ch - 'a' + 'A'); 22 | ans.append(uc); 23 | } 24 | 25 | } 26 | // Quee -- > aMaNn --> AmAnN(SB) 27 | 28 | return ans.toString(); 29 | } 30 | public static void main(String[] args) { 31 | Scanner scn = new Scanner(System.in); 32 | String str = scn.next(); 33 | System.out.println(toggleCase(str)); 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/backtracking/floodFill/method4/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/05. Recursion/backtracking/floodFill/method4/Main.java -------------------------------------------------------------------------------- /FJP 3/05. Recursion/backtracking/targetSum/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int [] arr = new int[n]; 10 | for(int i = 0; i tar){ 22 | return; 23 | } 24 | if(idx == arr.length){ 25 | if(tar == sum){ 26 | System.out.println(asf + "."); 27 | } 28 | return; 29 | } 30 | //pick done 31 | printTargetSumSubsets(arr, idx+1, asf + arr[idx] + ", ", sum + arr[idx] , tar); 32 | 33 | //not picked 34 | printTargetSumSubsets(arr, idx+1, asf, sum, tar); 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/intro/linearPower/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int x = scn.nextInt(); 9 | int n = scn.nextInt(); 10 | int ans = power(x,n); 11 | System.out.println(ans); 12 | } 13 | 14 | public static int power(int x, int n){ 15 | if(n == 0){ 16 | return 1; 17 | } 18 | int recAns = power(x, n-1); 19 | int myAns = recAns * x; 20 | return myAns; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/intro/logPower/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int x = scn.nextInt(); 9 | int n = scn.nextInt(); 10 | int ans = power(x, n); 11 | System.out.println(ans); 12 | } 13 | 14 | public static int power(int x, int n){ 15 | if(n==0){ 16 | return 1; 17 | } 18 | 19 | int recAns = power(x, n/2); 20 | int myAns = recAns * recAns; 21 | 22 | if(n % 2 != 0){ 23 | myAns *= x; 24 | } 25 | 26 | return myAns; 27 | 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionInAL/getMazePathJumps/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/05. Recursion/recursionInAL/getMazePathJumps/Main.java -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionInAL/getSubSequence/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | ArrayList ans = gss(s); 10 | System.out.println(ans); 11 | } 12 | 13 | public static ArrayList gss(String str) { 14 | if(str.length() == 0){ 15 | ArrayList base = new ArrayList<>(); 16 | base.add(""); 17 | return base; 18 | 19 | } 20 | 21 | 22 | char ch = str.charAt(0); //a 23 | String ros = str.substring(1); //bc 24 | 25 | ArrayList recAns = gss(ros); 26 | ArrayList myAns = new ArrayList<>(); 27 | 28 | 29 | for(String ele : recAns){ 30 | myAns.add(ele); 31 | } 32 | 33 | for(String ele : recAns){ 34 | myAns.add(ch+ele); 35 | } 36 | 37 | return myAns; 38 | 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionInArray/displayArr/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int [] arr = new int[n]; 10 | for(int i = 0; i recAns){ 27 | // return me; 28 | // } 29 | // else{ 30 | // return recAns; 31 | // } 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionOnTheWayUp/encoding/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | printEncodings(s, ""); 10 | } 11 | 12 | public static void printEncodings(String str, String ans) { 13 | if(str.length() == 0){ 14 | System.out.println(ans); 15 | return; 16 | } 17 | 18 | if(str.charAt(0) == '0'){ 19 | return; 20 | } 21 | 22 | char ch1 = str.charAt(0); //'6' 23 | int v1 = ch1 - '0'; // 6 -> int 24 | 25 | 26 | printEncodings(str.substring(1), ans + (char)(v1 + 'a' - 1)); 27 | 28 | if(str.length() > 1){ 29 | char ch2 = str.charAt(1); 30 | int v2 = ch2 - '0'; 31 | 32 | int num = v1 * 10 + v2; 33 | if(num <= 26){ 34 | printEncodings(str.substring(2), ans + (char)(num + 'a' - 1) ); 35 | } 36 | } 37 | 38 | 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionOnTheWayUp/mazePath/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int m = scn.nextInt(); 10 | printMazePaths(0,0,n-1, m-1, ""); 11 | 12 | } 13 | 14 | // sr - source row 15 | // sc - source column 16 | // dr - destination row 17 | // dc - destination column 18 | public static void printMazePaths(int sr, int sc, int dr, int dc, String psf) { 19 | // if(sr == dr && sc == dc){ 20 | // System.out.println(psf); 21 | // return; 22 | // } 23 | // if(sr > dr || sc > dc) 24 | // return; 25 | // printMazePaths(sr, sc+1, dr, dc, psf + "h"); 26 | // printMazePaths(sr + 1, sc, dr, dc, psf+"v"); 27 | 28 | 29 | if(sr == dr && sc == dc){ 30 | System.out.println(psf); 31 | return; 32 | } 33 | 34 | if(sc + 1 <= dc) 35 | printMazePaths(sr, sc+1, dr, dc, psf + "h"); 36 | if(sr + 1 <= dr) 37 | printMazePaths(sr + 1, sc, dr, dc, psf+"v"); 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /FJP 3/05. Recursion/recursionOnTheWayUp/permutations/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | printPermutations(s, ""); 10 | } 11 | 12 | public static void printPermutations(String str, String ans) { 13 | if(str.length() == 0){ 14 | System.out.println(ans); 15 | return; 16 | } 17 | 18 | for(int i = 0; i= 0) 20 | printStairPaths(n-step, path+step); 21 | } 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /FJP 3/06.oopsDemo/demo1/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/06.oopsDemo/demo1/Main.class -------------------------------------------------------------------------------- /FJP 3/06.oopsDemo/demo1/aman.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/06.oopsDemo/demo1/aman.class -------------------------------------------------------------------------------- /FJP 3/06.oopsDemo/demo1/aman.java: -------------------------------------------------------------------------------- 1 | 2 | 3 | public class aman{ 4 | int x = 10; 5 | void fun(){ 6 | System.out.println(); 7 | } 8 | 9 | public static void main(String [] args){ 10 | System.out.println("pepcoding"); 11 | } 12 | } -------------------------------------------------------------------------------- /FJP 3/06.oopsDemo/demo1/robot.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/06.oopsDemo/demo1/robot.class -------------------------------------------------------------------------------- /FJP 3/06.oopsDemo/demo1/text.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/06.oopsDemo/demo1/text.class -------------------------------------------------------------------------------- /FJP 3/07. linkedList/adapters/lltoQueueAdap/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/07. linkedList/adapters/lltoQueueAdap/Main.java -------------------------------------------------------------------------------- /FJP 3/08. DP/coinChangeCombination/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static int coinChangeCombination(int [] arr, int amt){ 7 | int [] dp = new int[amt+1]; 8 | dp[0] = 1; 9 | for(int i = 0; i= 0 ){ 12 | dp[j] += dp[j - arr[i]]; 13 | } 14 | } 15 | } 16 | return dp[amt]; 17 | } 18 | 19 | public static void main(String[] args) throws Exception { 20 | Scanner scn = new Scanner(System.in); 21 | int n = scn.nextInt(); 22 | int [] arr = new int[n]; 23 | for(int i = 0; i= 0 ){ 12 | dp[j] += dp[j - arr[i]]; 13 | } 14 | } 15 | } 16 | return dp[amt]; 17 | } 18 | 19 | public static void main(String[] args) throws Exception { 20 | Scanner scn = new Scanner(System.in); 21 | int n = scn.nextInt(); 22 | int [] arr = new int[n]; 23 | for(int i = 0; i pq = new PriorityQueue<>(); //default behaviour -- min PQ 9 | // for(int ele : arr) 10 | // pq.add(ele); 11 | 12 | // while(pq.size() != 0){ 13 | // System.out.println(pq.peek()); 14 | // pq.remove(); 15 | // } 16 | 17 | 18 | 19 | 20 | //max Priority Queue 21 | PriorityQueue pq = new PriorityQueue<>(Collections.reverseOrder()); //default behaviour -- min PQ 22 | for(int ele : arr) 23 | pq.add(ele); 24 | 25 | while(pq.size() != 0){ 26 | System.out.println(pq.peek()); 27 | pq.remove(); 28 | } 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/getCommon1/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main{ 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n1 = scn.nextInt(); 9 | int [] a = new int[n1]; 10 | for(int i = 0; i hm = new HashMap<>(); 21 | for(int ele : a) 22 | hm.put(ele, hm.getOrDefault(ele , 0 )+ 1); 23 | 24 | for(int ele : b){ 25 | if(hm.containsKey(ele)){ 26 | System.out.println(ele); 27 | 28 | //remove 29 | hm.remove(ele); 30 | } 31 | } 32 | 33 | 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/getCommon2/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main{ 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n1 = scn.nextInt(); 9 | int [] a = new int[n1]; 10 | for(int i = 0; i hm = new HashMap<>(); 21 | for(int ele : a) 22 | hm.put(ele, hm.getOrDefault(ele , 0 )+ 1); 23 | 24 | for(int ele : b){ 25 | if(hm.containsKey(ele) && hm.get(ele) > 0){ 26 | System.out.println(ele); 27 | 28 | int oldFreq = hm.get(ele); 29 | int newFreq = oldFreq-1; 30 | hm.put(ele, newFreq); 31 | } 32 | } 33 | 34 | 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/hashmapDemo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | //declare and initialize 7 | 8 | HashMap hm = new HashMap<>(); 9 | 10 | //put 11 | hm.put("India", 628); 12 | hm.put("China", 837); 13 | hm.put("Dubai", 120); 14 | 15 | // System.out.println(hm); 16 | 17 | hm.put("India", 200); 18 | 19 | hm.put("Pak", 837); 20 | hm.put("US", 443); 21 | 22 | // System.out.println(hm); 23 | 24 | 25 | //get 26 | int indData = hm.get("India"); 27 | // System.out.println(indData); 28 | 29 | boolean isChinaPresent = hm.containsKey("China"); 30 | boolean isBangladeshPresent = hm.containsKey("Bangladesh"); 31 | 32 | // System.out.println(isChinaPresent); 33 | // System.out.println(isBangladeshPresent); 34 | 35 | //keySet 36 | HashSet keys = hm.keySet(); 37 | for(String key : hm.keySet() ){ 38 | // System.out.println(key); 39 | } 40 | 41 | //size 42 | System.out.println(hm.size()); 43 | 44 | 45 | 46 | 47 | 48 | } 49 | } -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/kLargesEle/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 8 | int n = Integer.parseInt(br.readLine()); 9 | int[] arr = new int[n]; 10 | 11 | for (int i = 0; i < n; i++) { 12 | arr[i] = Integer.parseInt(br.readLine()); 13 | } 14 | 15 | int k = Integer.parseInt(br.readLine()); 16 | 17 | PriorityQueue pq = new PriorityQueue<>(); //min heap 18 | for(int i = 0 ; i < n; i++){ 19 | if(i < k){ 20 | pq.add(arr[i]); 21 | } 22 | else{ 23 | if(pq.peek() < arr[i]){ 24 | pq.remove(); 25 | pq.add(arr[i]); 26 | } 27 | } 28 | } 29 | 30 | while(pq.size() != 0){ 31 | System.out.println(pq.remove()); 32 | } 33 | 34 | 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/maxFreqChar/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/09. HashMap and Heap/maxFreqChar/Main.class -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/maxFreqChar/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | 10 | HashMap hm = new HashMap<>(); 11 | for(int i = 0; i hm.get(maxFreqChar)){ 29 | maxFreqChar = key; 30 | } 31 | } 32 | 33 | System.out.println(maxFreqChar); 34 | 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/mergeKSortedList/Main$triplet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/09. HashMap and Heap/mergeKSortedList/Main$triplet.class -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/mergeKSortedList/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/09. HashMap and Heap/mergeKSortedList/Main.class -------------------------------------------------------------------------------- /FJP 3/09. HashMap and Heap/mergeKSortedList/input.txt: -------------------------------------------------------------------------------- 1 | 4 2 | 5 3 | 10 20 30 40 50 4 | 7 5 | 5 7 9 11 19 55 57 6 | 3 7 | 1 2 3 8 | 2 9 | 32 39 -------------------------------------------------------------------------------- /FJP 3/10. Time and Space/sort 0 1 2/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public void swap(int [] arr, int i, int j){ 3 | int t = arr[i]; 4 | arr[i] = arr[j]; 5 | arr[j] = t; 6 | } 7 | public void sortColors(int[] nums) { 8 | int n = nums.length; 9 | int i = 0; 10 | int j = 0; 11 | int k = n-1; 12 | 13 | 14 | while(j <= k ){ 15 | int val = nums[j]; 16 | 17 | if(val == 0){ 18 | swap(nums, i, j); 19 | i++; 20 | j++; 21 | } 22 | else if(val == 1){ 23 | j++; 24 | } 25 | else{ 26 | //val --> 2 27 | swap(nums, j, k); 28 | k--; 29 | } 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /FJP 3/10. Time and Space/sort 0 1/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void sort01(int[] arr){ 7 | int i = 0; 8 | int j = 0; 9 | int n = arr.length; 10 | for(; j st = new Stack<>(); 4 | for(int i = 0; i st = new Stack<>(); 8 | for(int i = 0; i st = new Stack<>(); 6 | // ArrayList arr = new ArrayList<>(); 7 | 8 | //Overflow 9 | // st.push(10); 10 | // st.push(20); 11 | // st.push(30); 12 | // st.push(40); 13 | // st.push(50); 14 | // while(true) 15 | // { 16 | // st.push(10); 17 | // } 18 | 19 | 20 | //Underflow 21 | // st.pop(); 22 | st.peek(); 23 | 24 | 25 | 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/constructAndDisplay/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/constructAndDisplay/Main$Node.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/constructAndDisplay/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/constructAndDisplay/Main$pair.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/constructAndDisplay/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/constructAndDisplay/Main.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/levelOrder/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/levelOrder/Main$Node.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/levelOrder/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/levelOrder/Main$pair.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/levelOrder/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/levelOrder/Main.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/maxSizeHeight/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int maxDepth(TreeNode root) { 3 | if(root == null){ 4 | return 0; 5 | } 6 | 7 | int lh = maxDepth(root.left); 8 | int rh = maxDepth(root.right); 9 | 10 | int my = Math.max(lh, rh)+1; 11 | return my; 12 | } 13 | } -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/preOrder_LC144/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public void preOrder(TreeNode root, List ans){ 4 | if(root == null) 5 | return; 6 | ans.add(root.val); 7 | preOrder(root.left, ans); 8 | preOrder(root.right, ans); 9 | } 10 | public List preorderTraversal(TreeNode root) { 11 | List ans = new ArrayList<>(); 12 | preOrder(root, ans); 13 | return ans; 14 | } 15 | } -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/traversalsRecursive/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/traversalsRecursive/Main$Node.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/traversalsRecursive/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/traversalsRecursive/Main$pair.class -------------------------------------------------------------------------------- /FJP 3/12. Binary Tree/traversalsRecursive/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/12. Binary Tree/traversalsRecursive/Main.class -------------------------------------------------------------------------------- /FJP 3/13. BST/02. LC 98 isBST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | long prev = Long.MIN_VALUE; 3 | public boolean isValidBST(TreeNode root) { 4 | if(root == null) 5 | return true; 6 | 7 | boolean la = isValidBST(root.left); 8 | if(la == false) 9 | return false; 10 | 11 | 12 | if(prev >= root.val) 13 | return false; 14 | prev = root.val; 15 | 16 | boolean ra = isValidBST(root.right); 17 | if(ra == false) 18 | return false; 19 | 20 | 21 | return true; 22 | } 23 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/03. minimum/Main.java: -------------------------------------------------------------------------------- 1 | //https://practice.geeksforgeeks.org/problems/minimum-element-in-bst/1/# 2 | 3 | class Tree { 4 | // Function to find the minimum element in the given BST. 5 | int minValue(Node node) { 6 | if(node == null) 7 | return -1; 8 | 9 | Node curr = node; 10 | while(curr.left != null) 11 | curr = curr.left; 12 | return curr.data; 13 | } 14 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/04. createBST LC 108/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public TreeNode createBST(int [] nums, int i, int j){ 4 | if(i > j){ 5 | return null; 6 | } 7 | int mid = (i + j) / 2; 8 | TreeNode node = new TreeNode(nums[mid]); 9 | node.left = createBST(nums, i, mid-1); 10 | node.right = createBST(nums, mid + 1, j); 11 | 12 | return node; 13 | } 14 | 15 | public TreeNode sortedArrayToBST(int[] nums) { 16 | if(nums.length == 0 ) 17 | return null; 18 | return createBST(nums, 0, nums.length-1); 19 | } 20 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/05. LC 700 Search In BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode searchBST(TreeNode root, int val) { 3 | if(root == null) 4 | return null; 5 | if(root.val == val){ 6 | return root; 7 | } 8 | else if(root.val < val){ 9 | return searchBST(root.right, val); 10 | } 11 | else{ 12 | return searchBST(root.left, val); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/06. LC 701 Add In BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode insertIntoBST(TreeNode root, int val) { 3 | if(root == null) 4 | return new TreeNode(val); 5 | else if(root.val < val){ 6 | root.right = insertIntoBST(root.right, val); 7 | } 8 | else if(root.val > val){ 9 | root.left = insertIntoBST(root.left, val); 10 | } 11 | return root; 12 | } 13 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/07. LC 450 Remove from BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int max(TreeNode node){ 3 | TreeNode curr = node; 4 | while(curr.right != null) 5 | curr =curr.right; 6 | return curr.val; 7 | } 8 | public TreeNode deleteNode(TreeNode root, int key) { 9 | if(root == null){ 10 | return null; 11 | } 12 | 13 | if(key > root.val){ 14 | root.right = deleteNode(root.right, key); 15 | } 16 | else if(key < root.val){ 17 | root.left = deleteNode(root.left, key); 18 | } 19 | else{ 20 | //== 21 | //0 child || 1 child 22 | if(root.left == null || root.right == null ){ 23 | return root.left != null ? root.left : root.right; 24 | } 25 | 26 | // 2 child 27 | int maxEle = max(root.left); 28 | root.val = maxEle; 29 | root.left = deleteNode(root.left, maxEle); 30 | 31 | } 32 | return root; 33 | } 34 | } -------------------------------------------------------------------------------- /FJP 3/13. BST/08. LC 235 LCA of BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 3 | TreeNode curr = root; 4 | while(curr != null){ 5 | if(p.val < curr.val && q.val < curr.val){ 6 | curr = curr.left; 7 | } 8 | else if(p.val > curr.val && q.val > curr.val){ 9 | curr = curr.right; 10 | } 11 | else{ 12 | //divergent 13 | return curr; 14 | } 15 | } 16 | 17 | return null; 18 | } 19 | } -------------------------------------------------------------------------------- /FJP 3/15. Graph/01. intro/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/15. Graph/01. intro/Main$Edge.class -------------------------------------------------------------------------------- /FJP 3/15. Graph/01. intro/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/15. Graph/01. intro/Main.class -------------------------------------------------------------------------------- /FJP 3/15. Graph/05. LC 200 Number of Island/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | static int [][] dir = {{1,0},{0,1}, {-1,0}, {0,-1}}; 4 | public void dfs(char [][] grid, int i, int j){ 5 | grid[i][j] = '0'; 6 | 7 | for(int [] d : dir){ 8 | int r = i + d[0]; 9 | int c = j + d[1]; 10 | 11 | if(r < grid.length && r >= 0 && c < grid[0].length && c >= 0 && grid[r][c] == '1') 12 | dfs(grid, r, c); 13 | } 14 | 15 | 16 | } 17 | public int numIslands(char[][] grid) { 18 | int n = grid.length; 19 | int m = grid[0].length; 20 | int ans = 0; 21 | for(int i = 0; i hs = new HashSet<>(); 14 | 15 | 16 | //add 17 | hs.add(80); 18 | hs.add(20); 19 | hs.add(30); 20 | hs.add(60); 21 | hs.add(60); 22 | hs.add(70); 23 | hs.add(70); 24 | hs.add(40); 25 | 26 | 27 | // System.out.println(hs); 28 | 29 | //REMOVE 30 | hs.remove(30); 31 | 32 | 33 | //size 34 | int size = hs.size(); 35 | 36 | 37 | //get or find 38 | boolean is10 = hs.contains(10); //false 39 | boolean is20 = hs.contains(20); //true 40 | 41 | System.out.println(is10); 42 | System.out.println(is20); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /FJP 3/extra/lambda/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/lambda/Main.class -------------------------------------------------------------------------------- /FJP 3/extra/lambda/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | public class Main 3 | { 4 | public static void main(String[] args) { 5 | // int [] arr = {1,6,3,6,9,3,7}; 6 | int [][] arr = {{-1,4}, 7 | {-5,7}, 8 | {-3,12}, 9 | {-18,2}, 10 | {-6,10}}; 11 | 12 | Arrays.sort(arr, (a,b)->{ 13 | return a[0] - b[0]; 14 | }); 15 | for(int [] d : arr){ 16 | System.out.println(d[0] + " " + d[1]); 17 | } 18 | 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /FJP 3/extra/lambda/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/lambda/output.txt -------------------------------------------------------------------------------- /FJP 3/extra/primsAlgo/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/primsAlgo/Main$Edge.class -------------------------------------------------------------------------------- /FJP 3/extra/primsAlgo/Main$pp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/primsAlgo/Main$pp.class -------------------------------------------------------------------------------- /FJP 3/extra/primsAlgo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/primsAlgo/Main.class -------------------------------------------------------------------------------- /FJP 3/extra/primsAlgo/inp.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 8 3 | 0 1 10 4 | 1 2 10 5 | 2 3 10 6 | 0 3 40 7 | 3 4 2 8 | 4 5 3 9 | 5 6 3 10 | 4 6 8 11 | -------------------------------------------------------------------------------- /FJP 3/extra/priorityQueue/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/priorityQueue/Main$pair.class -------------------------------------------------------------------------------- /FJP 3/extra/priorityQueue/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/extra/priorityQueue/Main.class -------------------------------------------------------------------------------- /FJP 3/oops.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/FJP 3/oops.pdf -------------------------------------------------------------------------------- /General/.gitignore: -------------------------------------------------------------------------------- 1 | out.exe -------------------------------------------------------------------------------- /General/CP/stringHashing/rollingHash/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define lli long long int 4 | #define ii pair 5 | #define vi vector 6 | #define vii vector 7 | #define mod 1000000007 8 | 9 | using namespace std; 10 | 11 | lli getHash(string key){ 12 | lli hash = 0; 13 | lli p = 31; 14 | lli p_power = 1; 15 | 16 | for(char ch : key){ 17 | hash = (hash + (ch - 'a' + 1) * p_power) % mod; 18 | p_power = (p_power * p) % mod; 19 | } 20 | 21 | return hash; 22 | } 23 | 24 | int main(){ 25 | bool flag = 1; 26 | while(flag){ 27 | string key; 28 | cout<<"\n-> Enter Key \n"; 29 | cin>>key; 30 | if(key == "."){ 31 | flag = false; 32 | } 33 | else{ 34 | cout<<"Key : " < 9 | #include 10 | #include 11 | using namespace std; 12 | 13 | void bfs(vector> & graph, int src){ 14 | int level = 0; 15 | queue qu; 16 | qu.push(src); 17 | bool isCycle = false; 18 | while(qu.size() != 0){ 19 | int s = qu.size(); 20 | while(s-- > 0){ 21 | int rem = qu.front(); 22 | qu.pop(); 23 | 24 | if(vis[rem] == true){ 25 | isCycle = true; 26 | break; 27 | } 28 | 29 | vis[rem] = true; 30 | for(int nbr : graph[src]){ 31 | qu.push(nbr); 32 | } 33 | level++; 34 | } 35 | } 36 | } 37 | 38 | int main(){ 39 | 40 | } -------------------------------------------------------------------------------- /General/Graphs/dijkstra/Main$Edge.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/General/Graphs/dijkstra/Main$Edge.class -------------------------------------------------------------------------------- /General/Graphs/dijkstra/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/General/Graphs/dijkstra/Main.class -------------------------------------------------------------------------------- /General/Graphs/hamiltonianPathAndCycle/Notes.txt: -------------------------------------------------------------------------------- 1 | Steps: 2 | 3 | 0. from calling function from main.. I have added src initially in psf. 4 | 5 | 1. for all unvisited nbr of src, call hamPath 6 | 7 | for(Edge e : graph[src]){ 8 | int nbr = e.nbr; 9 | if(!vis.contains(nbr)){ 10 | hamPath(nbr, graph, vis, psf + nbr, osrc); 11 | } 12 | 13 | } 14 | 15 | 16 | 2. Mark and Unmark before calling 17 | vis.add(src); 18 | 19 | 20 | 21 | vis.remove(src); 22 | 23 | 24 | 3. Think for base case: 25 | We have used HashSet<> because we can take advantage of hs.size() it will give the count of visited vtx. 26 | If we do not use the HashSet then we must use boolean vis and count of vis. 27 | 28 | 4. In base case we checked for cycle, if there is cycle then SYSO() accordingly. Or for path also print accordingly. 29 | -------------------------------------------------------------------------------- /General/Graphs/unionFind/lc1267.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int countServers(vector>& grid) { 4 | int n = grid.size(); 5 | int m = grid[0].size(); 6 | 7 | vector > edges; 8 | 9 | for(int i = 0; i 1){ 30 | char ch2 = s.charAt(1); 31 | int ch2Num = ch2 - '0'; 32 | 33 | int value = chNum * 10 + ch2Num; 34 | if(value <= 26){ 35 | printEncodings(s.substring(2),ans + (char)(value + 'a' - 1)) ; 36 | } 37 | } 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /JSP 7/01. Recursion/03. backtracking/02. targetSum/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | int n = scn.nextInt(); 9 | int [] arr = new int[n]; 10 | for(int i = 0; i tar) 22 | return; 23 | if(idx == arr.length){ 24 | if(tar == sos){ 25 | System.out.println(set+"."); 26 | } 27 | return; 28 | } 29 | //selected 30 | printTargetSumSubsets(arr, idx + 1, set + arr[idx]+", ", sos + arr[idx], tar); 31 | 32 | //not selected 33 | printTargetSumSubsets(arr, idx + 1, set, sos, tar); 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /JSP 7/01. Recursion/03. backtracking/Flood Fill & BackTracking 1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/01. Recursion/03. backtracking/Flood Fill & BackTracking 1.pdf -------------------------------------------------------------------------------- /JSP 7/02. LinkedList/01. LC 206reverse/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public ListNode reverseList(ListNode head) { 3 | if(head == null){ 4 | return null; 5 | } 6 | 7 | ListNode prev = null; 8 | ListNode curr = head; 9 | 10 | while(curr != null){ 11 | //connections 12 | ListNode save = curr.next; 13 | curr.next = prev; 14 | 15 | //move--iterate 16 | prev = curr; 17 | curr = save; 18 | } 19 | head = prev; 20 | return head; 21 | } 22 | } -------------------------------------------------------------------------------- /JSP 7/02. LinkedList/02. kthFromLast/Main.java: -------------------------------------------------------------------------------- 1 | public int kthFromLast(int k){ 2 | Node slow = head; 3 | Node fast = head; 4 | 5 | for(int i = 0; i sB){ 27 | while(d-- > 0){ 28 | p1 = p1.next; 29 | } 30 | } 31 | else{ 32 | while(d-- > 0){ 33 | p2 = p2.next; 34 | } 35 | } 36 | 37 | while(p1 != null && p2 != null){ 38 | if(p1 == p2){ 39 | return p1; 40 | } 41 | p1 = p1.next; 42 | p2 = p2.next; 43 | 44 | } 45 | return null; 46 | 47 | } 48 | } -------------------------------------------------------------------------------- /JSP 7/02. LinkedList/12. LC 2 Add 2 Numbers/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 3 | ListNode p = l1; 4 | ListNode q = l2; 5 | ListNode ans = new ListNode(-1); 6 | ListNode curr = ans; 7 | 8 | int carry = 0; 9 | 10 | while(p != null || q != null || carry != 0){ 11 | int v1 = (p != null) ? p.val : 0; 12 | int v2 = (q != null) ? q.val : 0; 13 | int sum = v1 + v2 + carry; 14 | 15 | ListNode node = new ListNode(); 16 | node.val = sum % 10; 17 | carry = sum / 10; 18 | curr.next = node; 19 | curr = curr.next; 20 | 21 | if(p != null) 22 | p = p.next; 23 | if(q != null) 24 | q = q.next; 25 | 26 | 27 | } 28 | 29 | return ans.next; 30 | } 31 | } -------------------------------------------------------------------------------- /JSP 7/04. Stack and Queue/01. duplicateBrackets/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | public static boolean duplicateBrac(String s){ 6 | Stack st = new Stack<>(); 7 | 8 | for(int i = 0; i st = new Stack<>(); 4 | 5 | for(int i = 0; i qu = new LinkedList<>(); 8 | 9 | // ArrayDequeue adq = new ArrayDequeue<>(); 10 | 11 | //add 12 | qu.add(10); 13 | qu.add(20); 14 | qu.add(30); 15 | qu.add(40); 16 | qu.add(50); 17 | 18 | //size 19 | System.out.println(qu.size()); 20 | 21 | //remove 22 | qu.remove(); 23 | 24 | 25 | //get--peek 26 | int ele = qu.peek(); 27 | System.out.println(ele); 28 | System.out.println(qu.size()); 29 | } 30 | } -------------------------------------------------------------------------------- /JSP 7/04. Stack and Queue/delete/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/04. Stack and Queue/delete/Main.class -------------------------------------------------------------------------------- /JSP 7/04. Stack and Queue/delete/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.Stack; 2 | public class Main{ 3 | public static void main(String[] args){ 4 | Stack st = new Stack<>(); 5 | while(true){ 6 | st.push(10); 7 | } 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/02. traversals/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/02. traversals/Main$Node.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/02. traversals/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/02. traversals/Main$pair.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/02. traversals/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/02. traversals/Main.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/04. levelOrder/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/04. levelOrder/Main$Node.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/04. levelOrder/Main$pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/04. levelOrder/Main$pair.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/04. levelOrder/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/04. levelOrder/Main.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/07. diameter/Main$Node.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/07. diameter/Main$Node.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/07. diameter/Main$Pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/07. diameter/Main$Pair.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/07. diameter/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/05. Binary Tree/07. diameter/Main.class -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/07. diameter/input.txt: -------------------------------------------------------------------------------- 1 | 19 2 | 50 25 12 n n 37 30 n n n 75 62 n 70 n n 87 n n -------------------------------------------------------------------------------- /JSP 7/05. Binary Tree/08. tilt/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | static int tilt; 3 | 4 | public int sum(TreeNode root){ 5 | if(root == null) 6 | return 0; 7 | 8 | int la = sum(root.left); 9 | int ra = sum(root.right); 10 | 11 | tilt += Math.abs(la-ra); 12 | 13 | return la + ra + root.val; 14 | } 15 | //pair -- self 16 | 17 | public int findTilt(TreeNode root) { 18 | tilt = 0; 19 | sum(root); 20 | return tilt; 21 | } 22 | } -------------------------------------------------------------------------------- /JSP 7/06. BST/03. LC 701 insertIntoBST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode insertIntoBST(TreeNode root, int val) { 3 | if(root == null){ 4 | return new TreeNode(val); 5 | } 6 | if(root.val < val) 7 | root.right = insertIntoBST(root.right, val); 8 | else if(root.val > val) 9 | root.left = insertIntoBST(root.left, val); 10 | 11 | return root; 12 | } 13 | } -------------------------------------------------------------------------------- /JSP 7/06. BST/05. LC 235 LCA of BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 3 | TreeNode lca = root; 4 | while(lca != null){ 5 | if(p.val < lca.val && q.val < lca.val){ 6 | lca = lca.left; 7 | } 8 | else if(p.val > lca.val && q.val > lca.val){ 9 | lca = lca.right; 10 | } 11 | else{ 12 | return lca; 13 | } 14 | } 15 | return null; 16 | } 17 | } -------------------------------------------------------------------------------- /JSP 7/06. BST/06. LC 1325 remove Leaves from BST/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | private TreeNode task(TreeNode root, int tar) { 3 | if(root == null) return null; 4 | root.left = task(root.left, tar); 5 | root.right = task(root.right, tar); 6 | 7 | if(root.val == tar && root.left == null && root.right == null){ 8 | return null; 9 | } 10 | return root; 11 | } 12 | public TreeNode removeLeafNodes(TreeNode root, int target) { 13 | root = task(root, target); 14 | return root; 15 | } 16 | } -------------------------------------------------------------------------------- /JSP 7/07. Generic Tree/14. diameter/Main.java: -------------------------------------------------------------------------------- 1 | //diameter of a generic subtree 2 | static int dia; 3 | public static void diameter(Node root) { 4 | dia = 0; 5 | height(root); 6 | } 7 | 8 | public static int height(Node node) { 9 | int chbht = -1; 10 | int chsbht = -1; 11 | 12 | for (int i = 0; i < node.children.size(); i++) { 13 | Node child = node.children.get(i); 14 | int cht = height(child); 15 | 16 | if (cht > chbht) { 17 | chsbht = chbht; 18 | chbht = cht; 19 | } else if (cht > chsbht) { 20 | chsbht = cht; 21 | } 22 | } 23 | 24 | int dist = chbht + chsbht + 2; 25 | 26 | if (dist > dia) { 27 | dia = dist; 28 | } 29 | 30 | return chbht + 1; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /JSP 7/08. HashMap and PQ/00. demo/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/JSP 7/08. HashMap and PQ/00. demo/Main.class -------------------------------------------------------------------------------- /JSP 7/08. HashMap and PQ/00. demo/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.HashMap; 2 | 3 | public class Main{ 4 | public static void main(String [] args){ 5 | //Create : Country <--> Population 6 | HashMap hm = new HashMap<>(); 7 | 8 | //add : put(K,V) 9 | 10 | hm.put("India", 4200); 11 | hm.put("China", 14200); 12 | hm.put("USA", 84200); 13 | hm.put("Bangladesh", 44200); 14 | // hm.put("Pak", 8200); 15 | 16 | boolean isPresent = hm.containsKey("Pak"); 17 | 18 | System.out.println(isPresent); 19 | hm.put("USA", 2); 20 | 21 | 22 | /* 23 | Special Case incr. value of India by 1 24 | */ 25 | 26 | hm.put("India", hm.get("India")+1); 27 | 28 | //Size() 29 | int size = hm.size(); 30 | // System.out.println(size); 31 | 32 | //print HM 33 | System.out.println(hm); 34 | 35 | //remove(K) 36 | // hm.remove("India"); 37 | // System.out.println(hm); 38 | 39 | 40 | // //get(K) 41 | // int usa_ppl = hm.get("USA"); 42 | // System.out.println(usa_ppl); 43 | 44 | 45 | // //keySet() 46 | // for(String s : hm.keySet()) 47 | // System.out.println(s); 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | } 57 | } -------------------------------------------------------------------------------- /JSP 7/08. HashMap and PQ/01. maxFreq/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | 6 | public static void main(String[] args) throws Exception { 7 | Scanner scn = new Scanner(System.in); 8 | String s = scn.next(); 9 | 10 | //Wrapper Class 11 | HashMap hm = new HashMap<>(); 12 | 13 | for(int i = 0; i hm.get(chMax)){ 33 | chMax = key; 34 | } 35 | } 36 | 37 | System.out.println(chMax); 38 | 39 | 40 | 41 | 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /JSP 7/08. HashMap and PQ/02. getCommonEle_1/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main{ 5 | 6 | public static void solve(int [] A, int [] B){ 7 | int n1 = A.length; 8 | int n2 = B.length; 9 | 10 | //steps 1. hm(A) 11 | HashMap hm = new HashMap<>(); 12 | for(int ele : A){ 13 | hm.put(ele, hm.getOrDefault(ele, 0)+1); 14 | } 15 | 16 | //step 2. travel and solve 17 | for(int ele : B){ 18 | if(hm.containsKey(ele)){ 19 | System.out.println(ele); 20 | hm.remove(ele); 21 | } 22 | } 23 | } 24 | 25 | public static void main(String[] args) throws Exception { 26 | Scanner scn = new Scanner(System.in); 27 | int n1 = scn.nextInt(); 28 | int [] A = new int[n1]; 29 | for(int i = 0; i hm = new HashMap<>(); 12 | for(int ele : A){ 13 | hm.put(ele, hm.getOrDefault(ele, 0)+1); 14 | } 15 | 16 | //step 2. travel and solve 17 | for(int ele : B){ 18 | if(hm.containsKey(ele) && hm.get(ele) > 0 ){ 19 | System.out.println(ele); 20 | hm.put(ele, hm.get(ele) - 1 ); 21 | } 22 | } 23 | } 24 | 25 | public static void main(String[] args) throws Exception { 26 | Scanner scn = new Scanner(System.in); 27 | int n1 = scn.nextInt(); 28 | int [] A = new int[n1]; 29 | for(int i = 0; i pq = new PriorityQueue<>(); 8 | 9 | PriorityQueue pq = new PriorityQueue<>((a,b)->{ 10 | return b-a; 11 | }); 12 | 13 | //add 14 | pq.add(50); 15 | pq.add(60); 16 | pq.add(30); 17 | pq.add(10); 18 | pq.add(40); 19 | 20 | //peek 21 | // int min = pq.peek(); 22 | // System.out.println(min); 23 | 24 | //remove 25 | System.out.println(pq.size()); 26 | int min = pq.remove(); 27 | System.out.println(min); 28 | System.out.println(pq.remove()); 29 | System.out.println(pq.size()); 30 | 31 | 32 | } 33 | } -------------------------------------------------------------------------------- /JSP 7/09. Graph/05. LC 200numsOfIsland/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | static int [][] dir = {{1,0}, {0,1}, {-1,0}, {0,-1}}; 3 | 4 | public void dfs(int i, int j, char [][] grid){ 5 | grid[i][j] = '0'; 6 | 7 | for(int d = 0 ; d < dir.length; d++){ 8 | int r = i + dir[d][0]; 9 | int c = j + dir[d][1]; 10 | 11 | if(r >= 0 && r < grid.length && c >= 0 && c < grid[0].length && grid[r][c] == '1'){ 12 | dfs(r,c,grid); 13 | } 14 | } 15 | } 16 | 17 | 18 | public int numIslands(char[][] grid) { 19 | int n = grid.length; 20 | int m = grid[0].length; 21 | 22 | int count = 0; 23 | for(int i = 0; i= 0) 13 | ans += dp[n-1] ;//climbStairs_rec(n-1, dp); 14 | if(n-2 >= 0) 15 | ans += dp[n-2]; //climbStairs_rec(n-2, dp); 16 | 17 | dp[n] = ans; 18 | } 19 | return dp[N]; 20 | } 21 | 22 | 23 | public int climbStairs_rec(int n, int [] dp){ 24 | if(n == 0){ 25 | return dp[n] = 1; 26 | } 27 | 28 | if(dp[n] != 0) 29 | return dp[n]; 30 | 31 | int ans = 0; 32 | 33 | if(n-1 >= 0) 34 | ans += climbStairs_rec(n-1, dp); 35 | if(n-2 >= 0) 36 | ans += climbStairs_rec(n-2, dp); 37 | 38 | return dp[n] = ans; 39 | 40 | } 41 | public int climbStairs(int n) { 42 | int [] dp = new int[n+1]; 43 | 44 | return climbStairs_tab(n, dp); 45 | } 46 | } -------------------------------------------------------------------------------- /JSP 7/10. DP/03. LC746 MinCostClimbStair/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int solve(int n, int [] cost, int [] dp){ 3 | if(n <= 1){ 4 | //base 5 | return dp[n] = cost[n]; 6 | } 7 | 8 | if(dp[n] != 0) 9 | return dp[n]; 10 | 11 | int ans = Math.min(solve(n-1, cost, dp), solve(n-2, cost, dp)); 12 | ans += (n==cost.length) ? 0 : cost[n]; 13 | 14 | return dp[n] = ans; 15 | } 16 | 17 | public int minCostClimbingStairs(int[] cost) { 18 | int n = cost.length; 19 | 20 | int [] dp = new int[n+1]; 21 | return solve(n, cost, dp); 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /JSP 7/10. DP/04. LC62 uniquePath/Main.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int solve(int sr, int sc, int dr, int dc, int [][] dp){ 3 | if(sr == dr && sc == dc){ 4 | return dp[sr][sc] = 1; 5 | } 6 | 7 | if(dp[sr][sc] != 0){ 8 | return dp[sr][sc]; 9 | } 10 | 11 | int ans = 0; 12 | if(sc + 1 <= dc) 13 | ans += solve(sr,sc+1, dr, dc, dp); 14 | if(sr + 1 <= dr) 15 | ans += solve(sr+1,sc, dr, dc, dp); 16 | 17 | return dp[sr][sc] = ans; 18 | } 19 | 20 | 21 | 22 | public int uniquePaths(int n, int m) { 23 | int [][] dp = new int[n][m]; 24 | return solve(0,0,n-1, m-1, dp); 25 | } 26 | } -------------------------------------------------------------------------------- /JSP 7/10. DP/07. coinChangeCombi/Main.java: -------------------------------------------------------------------------------- 1 | import java.io.*; 2 | import java.util.*; 3 | 4 | public class Main { 5 | public static int solve(int [] arr, int amt){ 6 | int [] dp = new int[amt + 1]; 7 | dp[0] = 1; 8 | for(int coin : arr){ 9 | for(int i = 1; i= 0){ 11 | dp[i] += dp[i-coin]; 12 | } 13 | } 14 | } 15 | return dp[amt]; 16 | } 17 | 18 | public static void main(String[] args) throws Exception { 19 | Scanner scn = new Scanner(System.in); 20 | int n = scn.nextInt(); 21 | int [] arr = new int[n]; 22 | for(int i = 0; i al = new ArrayList<>(); 6 | for(int i = 1; i<=10; i++){ 7 | al.add(i+10); 8 | } 9 | 10 | System.out.println(al.size()); 11 | 12 | 13 | // System.out.println(al); 14 | // System.out.println(al.get(5)); // arr[5] 15 | 16 | // al.set(5, 160); //idx, new VAlue 17 | // System.out.println(al.get(5)); 18 | 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /LRC Extended/Level 1/06. ArrayList_String_SB/demoAL.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/LRC Extended/Level 1/06. ArrayList_String_SB/demoAL.class -------------------------------------------------------------------------------- /LRC Extended/Level 1/06. ArrayList_String_SB/demoAL.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | import java.util.ArrayList; 3 | 4 | public class demoAL{ 5 | public static Scanner scn = new Scanner(System.in); 6 | public static void addValue(ArrayList arr ){ 7 | int a = 40; 8 | int b = 50; 9 | int c = 60; 10 | int d = scn.nextInt(); 11 | arr.add(a); 12 | arr.add(d); 13 | arr.add(b); 14 | arr.add(c); 15 | 16 | 17 | 18 | 19 | System.out.println(arr); 20 | 21 | for(int ele : arr){ 22 | System.out.println(ele); 23 | } 24 | } 25 | public static void createAL(){ 26 | // ArrayList create -- 2 pt 27 | ArrayList arr = new ArrayList<>(); 28 | addValue(arr); 29 | } 30 | public static void main(String [] args){ 31 | //this will give address 32 | // int [] arr = {1,2,3,4,5}; 33 | // System.out.println(arr); 34 | 35 | //===================== 36 | createAL(); 37 | } 38 | } -------------------------------------------------------------------------------- /LRC Extended/Level 1/06. ArrayList_String_SB/stringDemo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/LRC Extended/Level 1/06. ArrayList_String_SB/stringDemo.class -------------------------------------------------------------------------------- /LRC Extended/Level 1/06. ArrayList_String_SB/stringDemo.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | public class stringDemo{ 3 | public static void main(String [] args){ 4 | Scanner scn = new Scanner(System.in); 5 | //input 6 | // String str1 = scn.next(); 7 | String str2 = scn.nextLine(); 8 | 9 | // System.out.println("String 1 is " + str1); 10 | System.out.println("String 2 is " + str2); 11 | 12 | 13 | //concatenation 14 | 15 | // String s = "hello"; 16 | // String r = "world"; 17 | 18 | // s += r; 19 | // System.out.println(s); 20 | 21 | 22 | // //charAt 23 | // char ch = s.charAt(4); 24 | // System.out.println("Character -- " + ch); 25 | 26 | // //length() 27 | // System.out.println("Length is -- " + s.length()); 28 | 29 | // //substring() 30 | // //s --> helloworld 31 | // //substring -- 1 para 32 | // String str = s.substring(2); 33 | // System.out.println(str); 34 | // System.out.println(s.substring(2,6)); 35 | 36 | } 37 | } -------------------------------------------------------------------------------- /LRC Extended/Level 1/06. ArrayList_String_SB/stringEqual.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/LRC Extended/Level 1/06. ArrayList_String_SB/stringEqual.class -------------------------------------------------------------------------------- /Level 2/01. recursion/RecursionTrees.java.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/Level 2/01. recursion/RecursionTrees.java.pdf -------------------------------------------------------------------------------- /Level 2/01. recursion/lec001$Solution.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/Level 2/01. recursion/lec001$Solution.class -------------------------------------------------------------------------------- /Level 2/01. recursion/lec001.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/Level 2/01. recursion/lec001.class -------------------------------------------------------------------------------- /Level 2/01. recursion/lec002_RecursionTree.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aman-5757/pepcodingCodes/4945f9074ce60cc41844a96661c4d14896207ebc/Level 2/01. recursion/lec002_RecursionTree.class --------------------------------------------------------------------------------