This repository contains my various implementations of Data Structures and Algorithms as well as some foundational C++ practice programs.
It also contains various my solutions to problems asked in various Competitive Coding Sites, Events and Platforms.
I looked at some of my files after 2 months, i was confused about which one was complete, incomplete, TLE, WA, etc...
One more important thing is that I don't make multiple files for naive, efficient, optimized solutions, rather I make 3 separate functions:
solve_problem()
solve_problem_efficient()
solve_problem_optimised()
NOTE: You can CLICK ON THE GIFS to ENLARGE THEM!
NOTE: Scroll down to see more demos.
HackerrankHackerEarthGeeksforGeeks- Interview Bit
- Leetcode
SPOJ- Codechef
- Codeforces
.
├── ascii_table.png
├── Career Cup
│ ├── intelligent_substrings.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── CodeChef
│ ├── Contests
│ │ ├── CookOff
│ │ ├── Long
│ │ │ └── 2022 September 09 Long Challenge
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE
│ │ │ ├── nE.cpp
│ │ │ ├── xerror.txt
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Lunchtime
│ │ │ ├── 2020 August 14 Lunchtime Division 2
│ │ │ │ ├── 1.cpp
│ │ │ │ ├── 2.cpp
│ │ │ │ ├── 3.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ ├── 2022 August 18 Lunchtime Division 4
│ │ │ │ ├── nA
│ │ │ │ ├── nA.cpp
│ │ │ │ ├── nB.cpp
│ │ │ │ ├── nC.cpp
│ │ │ │ ├── nD
│ │ │ │ ├── nD.cpp
│ │ │ │ ├── nE
│ │ │ │ ├── nF
│ │ │ │ └── xoutput.txt
│ │ │ └── 2022 August 22 Lunchtime Division 4
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE
│ │ │ ├── nE.cpp
│ │ │ ├── nF
│ │ │ ├── nF.cpp
│ │ │ ├── nG.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Random
│ │ │ ├── Code Fiesta 2020
│ │ │ │ ├── BUNKGUY_the_bunking_guy.cpp
│ │ │ │ ├── INTERn_my_interview.cpp
│ │ │ │ ├── MAKEHAPPn_happy_employee.cpp
│ │ │ │ ├── QFUNn_quarantine_fun.cpp
│ │ │ │ ├── SERIESTOn_xor_xnor_series.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ ├── Code Marathon
│ │ │ │ ├── output_sudoku_solver.gif
│ │ │ │ ├── sudokuSolver.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ ├── Codentine-2021-ACM-Manipal
│ │ │ │ ├── ACM15.cpp
│ │ │ │ ├── ACM16.cpp
│ │ │ │ ├── ACM1.cpp
│ │ │ │ ├── ACM7.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ ├── Feb Challenge 2018
│ │ │ │ ├── PERMPAL_permutations_and_palindrome.cpp
│ │ │ │ ├── sahil.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ └── Zonal Computing Olympiad 2015
│ │ │ ├── xinput.txt
│ │ │ ├── xoutput.txt
│ │ │ └── ZCO15002_variation_count.cpp
│ │ └── Starters
│ │ ├── #50-div3
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── tempCodeRunnerFile.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #52-div4
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE
│ │ │ ├── nE.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #53-div4
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE
│ │ │ ├── nE.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #54-div3
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── xerror.txt
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #55-div3
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE.cpp
│ │ │ ├── nF
│ │ │ ├── nF.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #56-div3
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── xerror.txt
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── #60-div3
│ │ ├── nA
│ │ ├── nA.cpp
│ │ ├── nB
│ │ ├── nB.cpp
│ │ ├── nC
│ │ ├── nC.cpp
│ │ ├── nD.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── Problems
│ │ ├── Beginner
│ │ │ ├── CIELRCPT_ceil_and_receipt.cpp
│ │ │ ├── FCTRL2_small_factorials.cpp
│ │ │ ├── FLOW001_add_two_numbers.cpp
│ │ │ ├── FLOW002_find_remainder.cpp
│ │ │ ├── FLOW006_sum_of_digits.cpp
│ │ │ ├── FLOW008_helping_chef.cpp
│ │ │ ├── FLOW017_second_largest.cpp
│ │ │ ├── FLOW018_factorial.cpp
│ │ │ ├── HS08TEST_ATM.cpp
│ │ │ ├── INTEST_enormous_input_test.cpp
│ │ │ ├── MUFFINS3n_packaging_cupcakes.cpp
│ │ │ ├── PRB01n_primality_test
│ │ │ ├── PRB01n_primality_test.cpp
│ │ │ ├── START01_number_mirror.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Easy
│ │ │ ├── ALEXNUMB_magic_pairs.cpp
│ │ │ ├── AMSGAME1n_subtraction_game1.cpp
│ │ │ ├── CHEFRES_chef_restaurant.cpp
│ │ │ ├── CIELAB_ceil_A_B.cpp
│ │ │ ├── CNOTE_chef_and_notebooks.cpp
│ │ │ ├── COOK82Cha_hussain_set.cpp
│ │ │ ├── COOK82Ch_voters_list.cpp
│ │ │ ├── COOK82Cn_hussain_set.cpp
│ │ │ ├── FCTRL_factorial.cpp
│ │ │ ├── FIRESCn_fire_escape_routes.cpp
│ │ │ ├── HORSES_racing_horses.cpp
│ │ │ ├── JOHNY_uncle_johnny.cpp
│ │ │ ├── LEBOMBSn_little_elephants_and_bombs.cpp
│ │ │ ├── MAXDIFF_maximum_difference.cpp
│ │ │ ├── NAME2_your_name_is_mine.cpp
│ │ │ ├── OJUMPS_chef_jumps.cpp
│ │ │ ├── PRIME1_prime_generator.cpp
│ │ │ ├── RRCOPY_copy_paste.cpp
│ │ │ ├── SALARY_min_num_of_moves.cpp
│ │ │ ├── SPCANDY_splitting_candies.cpp
│ │ │ ├── TEST_Life_the_Universe_and_Everything.cpp
│ │ │ ├── TOTRn_tourist_translations.cpp
│ │ │ ├── VOTERSh_voters_list.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── Medium
│ │ ├── COINSn_Bytelandian_gold_coins.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Random
│ └── checkArrangement.cpp
├── CodeForces
│ ├── contests
│ │ ├── educational
│ │ │ └── #112-div2
│ │ │ ├── B_two_tables.cpp
│ │ │ ├── WA_A_pizza.cpp
│ │ │ ├── WA_C_coin_rows.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── regular
│ │ ├── #735-div2
│ │ │ ├── MLE_C_mikasa.cpp
│ │ │ ├── TLE_B_cobb.cpp
│ │ │ ├── WA_A_cherry.cpp
│ │ │ ├── WA_D_diana.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #736-div2
│ │ │ ├── A.cpp
│ │ │ ├── MLE_C2.cpp
│ │ │ ├── nB.cpp
│ │ │ ├── TLE_C3.cpp
│ │ │ ├── WA_C.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #737-div2
│ │ │ ├── nA.cpp
│ │ │ ├── nC.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #738-div2
│ │ │ ├── B_mocha_red_blue.cpp
│ │ │ ├── nA_mocha_and_math.cpp
│ │ │ ├── nC_mocha_hiking.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #740-div2
│ │ │ ├── nA.cpp
│ │ │ └── xinput.txt
│ │ ├── #810-div2
│ │ ├── #815-div2
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #816-div2
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #817-div4
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── nD
│ │ │ ├── nD.cpp
│ │ │ ├── nE
│ │ │ ├── nE.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── #818-div2
│ │ │ ├── A.class
│ │ │ └── nB
│ │ ├── #820-div3
│ │ │ ├── nA
│ │ │ ├── nA.cpp
│ │ │ ├── nB
│ │ │ ├── nB.cpp
│ │ │ ├── nC
│ │ │ ├── nC.cpp
│ │ │ ├── xerror.txt
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── #826-div3
│ │ ├── nA
│ │ ├── nA.cpp
│ │ ├── nB
│ │ ├── nB.cpp
│ │ └── xinput.txt
│ └── problem-set
│ ├── 0001A_theatre_square.cpp
│ ├── 0004C_registration_system.cpp
│ ├── 0050A_domino_piling.cpp
│ ├── 0058A_chat_room.cpp
│ ├── 0069A_young_physicist.cpp
│ ├── 0071A_way_too_long_words.cpp
│ ├── 0112A_petya_and_strings.cpp
│ ├── 0118A_string_task.cpp
│ ├── 0158A_next_round.cpp
│ ├── 0231A_team.cpp
│ ├── 0263A_beuatiful_matrix.cpp
│ ├── 0281A_capitalization.cpp
│ ├── 0282A_bit_plus_plus.cpp
│ ├── 0339A_helpful_maths.cpp
│ ├── 0368B_sereja_and_suffixes.cpp
│ ├── 0519B_compilation_errors.cpp
│ ├── 0546A_soldier_and_bananas.cpp
│ ├── 0791A_bear_and_big_brother.cpp
│ ├── 1037C_equalize.cpp
│ ├── 1553B_reverse_string.cpp
│ ├── NEW_0122A_lucky_division.cpp
│ ├── NEW_1520D_same_differences.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── CodeVita
│ ├── editorial.py
│ ├── factorOf3.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── CodeZen
│ ├── 01 CPP
│ │ ├── 03 Conditionals and Loops
│ │ │ ├── prog01checkCase.cpp
│ │ │ ├── prog02sumOfNumbersTillEven.cpp
│ │ │ ├── prog03fahToCel.cpp
│ │ │ ├── prog04numberPattern1.cpp
│ │ │ ├── prog05numberPattern2.cpp
│ │ │ ├── prog06starPattern.cpp
│ │ │ ├── prog07totalSalary.cpp
│ │ │ ├── prog08sumOfEvenOdd.cpp
│ │ │ └── prog09powerOfNUmber.cpp
│ │ ├── 04 Patterns 1
│ │ │ ├── prog01squarePattern.cpp
│ │ │ ├── prog02triangularStarPattern.cpp
│ │ │ ├── prog03triangularNumberPattern.cpp
│ │ │ ├── prog04reverseNumberPattern.cpp
│ │ │ ├── prog05alphaPattern.cpp
│ │ │ ├── prog06characterPattern.cpp
│ │ │ └── prog07interestingAlphabets.cpp
│ │ ├── 05 Patterns 2
│ │ │ ├── prog01mirrorPattern.cpp
│ │ │ ├── prog02invertedNumberPattern.cpp
│ │ │ ├── prog03starPattern.cpp
│ │ │ ├── prog04triangleOfNumbers.cpp
│ │ │ └── prog05diamondOfStars.cpp
│ │ ├── 06 Operators and For Loop
│ │ │ ├── new08dec2bin.cpp
│ │ │ ├── prog01NthFibonacciNumber.cpp
│ │ │ ├── prog02allPrimeNumbers.cpp
│ │ │ ├── prog03countCharacters.cpp
│ │ │ ├── prog04sumOrProduct.cpp
│ │ │ ├── prog05termsOfAP.cpp
│ │ │ ├── prog06reverseOfNumber.cpp
│ │ │ ├── prog07bin2Dec.cpp
│ │ │ ├── prog09squareRootIntergral.cpp
│ │ │ └── prog10checkNumberSequence.cpp
│ │ ├── 07 Functions
│ │ │ ├── prog01fahToCelTable.cpp
│ │ │ └── prog02checkFibonacciMember.cpp
│ │ ├── 08 Arrays
│ │ │ ├── new04swapAlteranate.cpp
│ │ │ ├── new09tripletSum.cpp
│ │ │ ├── prog01arraySum.cpp
│ │ │ ├── prog02linearSearch.cpp
│ │ │ ├── prog03arrangeArrayNumbers.cpp
│ │ │ ├── prog05findUnique.cpp
│ │ │ ├── prog06findDuplicate.cpp
│ │ │ ├── prog07arrayIntersection.cpp
│ │ │ ├── prog08pairSum.cpp
│ │ │ └── prog10sort01.cpp
│ │ ├── 09 Searching and Sorting
│ │ │ ├── prog01BinarySearch.cpp
│ │ │ ├── prog02bubbleSort.cpp
│ │ │ ├── prog03insertionSort.cpp
│ │ │ ├── prog04mergeSortedArrays.cpp
│ │ │ ├── prog05PushZeroesEnd.cpp
│ │ │ ├── prog06rotateArray.cpp
│ │ │ ├── prog07FindSecondLargest.cpp
│ │ │ ├── prog08FindSortedArrayRotation.cpp
│ │ │ ├── prog09sort012.cpp
│ │ │ └── prog10sumOfTwoArrays.cpp
│ │ ├── 10 Chracter Arrays
│ │ │ ├── prog01checkPalindrome.cpp
│ │ │ ├── prog02replaceCharacter.cpp
│ │ │ ├── prog03trimSpaces.cpp
│ │ │ ├── prog04reverseEachWord.cpp
│ │ │ ├── prog05printSubstrings.cpp
│ │ │ ├── prog06columnWiseSum.cpp
│ │ │ ├── prog07largestRowORcolumn.cpp
│ │ │ ├── prog08wavePrint.cpp
│ │ │ ├── prog09spiralPrint.cpp
│ │ │ ├── prog10checkPermutation.cpp
│ │ │ ├── prog11removeConsecutiveDuplicates.cpp
│ │ │ ├── prog12reverseEachWord.cpp
│ │ │ ├── prog13removeAllOccurrencesOfChar.cpp
│ │ │ ├── prog14highestOccurringChar.cpp
│ │ │ └── prog15stringCompression.cpp
│ │ └── TESTS
│ │ ├── TEST 1
│ │ │ ├── prog1PyramidNumberPattern.cpp
│ │ │ ├── prog2NumberStarPattern.cpp
│ │ │ └── prog3SecondLargest.cpp
│ │ └── TEST 2
│ │ ├── prog01print2DArray.cpp
│ │ ├── prog02minLengthWord.cpp
│ │ └── prog03leadersInArray.cpp
│ ├── 02 Data Structures
│ │ ├── 01 Pointers
│ │ │ ├── Exercises
│ │ │ │ └── prog999.cpp
│ │ │ └── Programs
│ │ │ ├── prog01pointers.cpp
│ │ │ ├── prog02pointers2.cpp
│ │ │ ├── prog03pointers3.cpp
│ │ │ ├── prog04pointer_operator.cpp
│ │ │ ├── prog05array_pointers.cpp
│ │ │ ├── prog06char_array.cpp
│ │ │ ├── prog07functions_pointers.cpp
│ │ │ ├── prog08functions_arrays.cpp
│ │ │ └── prog09double_pointer.cpp
│ │ ├── 02 Dynamic Allocation
│ │ │ ├── prog01typecasting.cpp
│ │ │ ├── prog02reference_variables.cpp
│ │ │ ├── prog03dynamic_allocation.cpp
│ │ │ ├── prog04multidimarray.cpp
│ │ │ ├── prog05define.cpp
│ │ │ ├── prog06global.cpp
│ │ │ ├── prog07inline.cpp
│ │ │ ├── prog08default_arguments.cpp
│ │ │ ├── prog09const_ref.cpp
│ │ │ ├── prog10const_pointers.cpp
│ │ │ └── prog11const_pointers2.cpp
│ │ ├── 03 04 Recursion
│ │ │ ├── Assignment
│ │ │ │ ├── prog01replacePiRecursive.cpp
│ │ │ │ ├── prog02removeX.cpp
│ │ │ │ ├── prog03StringToInteger.cpp
│ │ │ │ ├── prog04pairStar.cpp
│ │ │ │ └── prog05towerOfHanoi.cpp
│ │ │ ├── Recursion 1
│ │ │ │ ├── prog01factorial.cpp
│ │ │ │ ├── prog02factorial2.cpp
│ │ │ │ ├── prog03power.cpp
│ │ │ │ ├── prog04reversePrint.cpp
│ │ │ │ ├── prog05countDigits.cpp
│ │ │ │ ├── prog08arraySum.cpp
│ │ │ │ ├── prog09checkNumber.cpp
│ │ │ │ ├── prog10firstIndexOfNumber.cpp
│ │ │ │ ├── prog11lastIndexOfNumber.cpp
│ │ │ │ ├── prog12allIndicesOfNumber.cpp
│ │ │ │ ├── prog13recursiveMultiplication.cpp
│ │ │ │ ├── prog14countZeroes.cpp
│ │ │ │ ├── prog15geometricSum.cpp
│ │ │ │ ├── prog16checkPalindrome.cpp
│ │ │ │ └── prog17sumOfDigits.cpp
│ │ │ └── Recursion 2
│ │ │ ├── new20RETURNpermutationsOfString.cpp
│ │ │ ├── prog01strings_recursion.cpp
│ │ │ ├── prog02replaceCharacter.cpp
│ │ │ ├── prog03removeConsecutiveDuplicates.cpp
│ │ │ ├── prog04mergeSort.cpp
│ │ │ ├── prog05quickSort.cpp
│ │ │ ├── prog06strings_intro.cpp
│ │ │ ├── prog07RETURNallSubsequences.cpp
│ │ │ ├── prog08RETURNKeypad.cpp
│ │ │ ├── prog09PRINTallSubsequences.cpp
│ │ │ ├── prog10PRINTKeypad.cpp
│ │ │ ├── prog11chackAB.cpp
│ │ │ ├── prog12staircase.cpp
│ │ │ ├── prog13BinarySearchRecursive.cpp
│ │ │ ├── prog14RETURNsubsetOfArray.cpp
│ │ │ ├── prog15PRINTsubsetOfArray.cpp
│ │ │ ├── prog16RETURNsubsetSumToK.cpp
│ │ │ ├── prog17PRINTsubsetSumToK.cpp
│ │ │ ├── prog18RETURNallCodesOfString.cpp
│ │ │ ├── prog19PRINTallCodesOfString.cpp
│ │ │ ├── prog21PRINTpermutationsOfString.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 05 Time and Space Complexity
│ │ │ ├── prog01findUnique.cpp
│ │ │ ├── prog02duplicateInArray.cpp
│ │ │ ├── prog03printArrayIntersection.cpp
│ │ │ ├── prog04pairSumArray.cpp
│ │ │ ├── prog05TripletSum.cpp
│ │ │ ├── prog06rotateArray.cpp
│ │ │ └── prog07nFindSortedArrayRotation.cpp
│ │ ├── 06 07 21 OOPS
│ │ │ ├── OOPS 1
│ │ │ │ ├── ComplexNumbers.cpp
│ │ │ │ ├── FractionUse.cpp
│ │ │ │ ├── include
│ │ │ │ │ ├── Fraction.hpp
│ │ │ │ │ └── Student.hpp
│ │ │ │ ├── StudentUse2.cpp
│ │ │ │ ├── StudentUse3.cpp
│ │ │ │ ├── StudentUse4.cpp
│ │ │ │ ├── StudentUse5.cpp
│ │ │ │ ├── StudentUse6.cpp
│ │ │ │ └── StudentUse.cpp
│ │ │ └── OOPS 2
│ │ │ ├── DyanmicArrayUse.cpp
│ │ │ ├── FractionNew1Use.cpp
│ │ │ ├── FractionNew2Use2.cpp
│ │ │ ├── FractionNew2Use3.cpp
│ │ │ ├── FractionNew2Use.cpp
│ │ │ ├── include
│ │ │ │ ├── DynamicArray.hpp
│ │ │ │ ├── FractionNew2.hpp
│ │ │ │ ├── FractionNew.hpp
│ │ │ │ ├── Polynomial.hpp
│ │ │ │ ├── Student2.hpp
│ │ │ │ ├── Student3.hpp
│ │ │ │ └── Student.hpp
│ │ │ ├── PolynomialUse.cpp
│ │ │ ├── Student1Use2.cpp
│ │ │ ├── Student1Use.cpp
│ │ │ ├── Student2Use.cpp
│ │ │ └── Student3use.cpp
│ │ ├── 08 09 Linked List
│ │ │ ├── include
│ │ │ │ ├── CNLinkedList.hpp
│ │ │ │ ├── FINALLinkedList.hpp
│ │ │ │ └── Node.cpp
│ │ │ ├── Linked list 1
│ │ │ │ ├── prog01LinkedList.cpp
│ │ │ │ ├── prog02LinkedList2.cpp
│ │ │ │ ├── prog03LinkedList3.cpp
│ │ │ │ ├── prog04LinkedList4.cpp
│ │ │ │ ├── prog05lengthOfLinkedListIterative.cpp
│ │ │ │ ├── prog06printParticularNode.cpp
│ │ │ │ ├── prog07insertAtPosition.cpp
│ │ │ │ ├── prog08deleteAtPostion.cpp
│ │ │ │ ├── prog09LengthOfLinkedListRecursive.cpp
│ │ │ │ ├── prog10insertNodeRecursive.cpp
│ │ │ │ ├── prog11deleteNodeRecursive.cpp
│ │ │ │ ├── prog12indexOfNIter.cpp
│ │ │ │ ├── prog13appendLastNToFirst.cpp
│ │ │ │ ├── prog14eliminateDuplicatesfromLL.cpp
│ │ │ │ ├── prog15printReverseLL.cpp
│ │ │ │ └── prog16palindromeLinkedList.cpp
│ │ │ └── Linked list 2
│ │ │ ├── prog01midPointOfLL.cpp
│ │ │ ├── prog02mergeTwoLLs.cpp
│ │ │ ├── prog03mergeSortUsingLL.cpp
│ │ │ ├── prog04reverseLinkedListRecursive.cpp
│ │ │ ├── prog05CNreverseLL.cpp
│ │ │ ├── prog06reverseLinkedListIterative.cpp
│ │ │ ├── prog07findNodeLLRec.cpp
│ │ │ ├── prog08arrangeOddEvenLL.cpp
│ │ │ ├── prog09skipMdeleteN.cpp
│ │ │ └── prog10swap2Nodes.cpp
│ │ ├── 10A Stacks
│ │ │ ├── include
│ │ │ │ ├── DynamicStackUsingArray.hpp
│ │ │ │ ├── StackUsingArray.hpp
│ │ │ │ ├── StackUsingLinkedList.hpp
│ │ │ │ └── TemplateStack.hpp
│ │ │ ├── Pair
│ │ │ │ ├── Pair.cpp
│ │ │ │ └── PairUse.cpp
│ │ │ └── Stack ADT
│ │ │ ├── new08checkRedundantBrackets.cpp
│ │ │ ├── new09stockSpan.cpp
│ │ │ ├── new10minimumBracketReversal.cpp
│ │ │ ├── prog01StackUse.cpp
│ │ │ ├── prog02DynamicStackUse.cpp
│ │ │ ├── prog03TemplateStackUse.cpp
│ │ │ ├── prog04StackUsingLinkedListUse.cpp
│ │ │ ├── prog05InbuiltStack.cpp
│ │ │ ├── prog06balancedParenthesis.cpp
│ │ │ └── prog07reverseStack.cpp
│ │ ├── 10B Queues
│ │ │ ├── include
│ │ │ │ ├── DynamicQueueUsingArray.hpp
│ │ │ │ └── QueueUsingArray.hpp
│ │ │ ├── new04mergeKsortedArrays.cpp
│ │ │ ├── prog01QueueUse.cpp
│ │ │ ├── prog02DynamicQueueUse.cpp
│ │ │ └── prog03reverseQueue.cpp
│ │ ├── 11 Trees
│ │ │ ├── include
│ │ │ │ ├── CNTree.hpp
│ │ │ │ ├── FINALTree.hpp
│ │ │ │ ├── PrcaticeTree.cpp
│ │ │ │ └── TreeNode.hpp
│ │ │ ├── TreeADT
│ │ │ │ ├── fail14isStructurallyIdentical.cpp
│ │ │ │ ├── prog01TreeUse.cpp
│ │ │ │ ├── prog02printLevelWise.cpp
│ │ │ │ ├── prog03numNodes.cpp
│ │ │ │ ├── prog04sumNodes.cpp
│ │ │ │ ├── prog05maxNodes.cpp
│ │ │ │ ├── prog06TreeHeightRecursive.cpp
│ │ │ │ ├── prog07depthOfNode.cpp
│ │ │ │ ├── prog08numLeafNodes.cpp
│ │ │ │ ├── prog09PreorderPostorder.cpp
│ │ │ │ ├── prog10deleteTree.cpp
│ │ │ │ ├── prog11containsX.cpp
│ │ │ │ ├── prog12nodesGreaterThanX.cpp
│ │ │ │ ├── prog13maxSumNode.cpp
│ │ │ │ ├── prog15nextLargerElement.cpp
│ │ │ │ ├── prog16secondLargestElement.cpp
│ │ │ │ └── prog17replaceWithDepthValue.cpp
│ │ │ └── Vectors
│ │ │ └── vectorUse.cpp
│ │ ├── 12 Binary Trees
│ │ │ ├── BT ADT
│ │ │ │ ├── new02printLevelWise.cpp
│ │ │ │ ├── new04findNode.cpp
│ │ │ │ ├── new05heightOfBT.cpp
│ │ │ │ ├── new06mirrorOfBT.cpp
│ │ │ │ ├── new09buildTreeFromInorderPostorder.cpp
│ │ │ │ ├── prog01BinaryTreeUse.cpp
│ │ │ │ ├── prog03numOfNodes.cpp
│ │ │ │ ├── prog07traversalOfBT.cpp
│ │ │ │ ├── prog08buildTreeFromInorderPreorder.cpp
│ │ │ │ └── prog10height_diameter_BT.cpp
│ │ │ └── include
│ │ │ ├── BinaryTreeNode.hpp
│ │ │ ├── CNBinaryTree.hpp
│ │ │ ├── FINALBinaryTree.hpp
│ │ │ └── PracticeBT.cpp
│ │ ├── 13 BST
│ │ │ ├── BST ADT
│ │ │ │ ├── fail01searchBST.cpp
│ │ │ │ ├── fail02printrange.cpp
│ │ │ │ ├── fail04constructBSTfromSortedArray.cpp
│ │ │ │ ├── fail05BSTtosortedLL.cpp
│ │ │ │ ├── prog03checkBST123.cpp
│ │ │ │ ├── prog06getRootToNodePath.cpp
│ │ │ │ └── prog07BinarySearchTreeUse.cpp
│ │ │ └── include
│ │ │ ├── BinarySearchTree.hpp
│ │ │ ├── BinaryTreeNode.hpp
│ │ │ ├── CNBinaryTree.hpp
│ │ │ ├── FINALBinaryTree.hpp
│ │ │ └── practiceBST.cpp
│ │ ├── 14 Heaps & Priority Queues
│ │ │ ├── Heaps & PQs ADT
│ │ │ │ ├── prog01HeapUseANDheapSort.cpp
│ │ │ │ ├── prog02maxPriorityQueue.cpp
│ │ │ │ └── prog03inplaceHeapSort.cpp
│ │ │ └── include
│ │ │ └── PriorityQueue.hpp
│ │ ├── 15 Hash Maps
│ │ │ ├── HashMapADT
│ │ │ │ ├── prog01mapUse.cpp
│ │ │ │ ├── prog02removeDuplicates.cpp
│ │ │ │ ├── prog03highestFrequency.cpp
│ │ │ │ ├── prog04printIntersection.cpp
│ │ │ │ ├── prog05PairSum0.cpp
│ │ │ │ └── prog06iterators.cpp
│ │ │ └── include
│ │ │ └── ourmap.hpp
│ │ └── 16 Tries and Huffman Coding
│ │ ├── include
│ │ │ ├── FINALTrie.hpp
│ │ │ └── TrieNode.hpp
│ │ └── Tries ADT
│ │ └── prog01TrieUse.cpp
│ ├── 03 Algorithms and Competitive Programming
│ │ ├── 01 Prerequisites
│ │ │ ├── prog001addTwoNumbers.cpp
│ │ │ ├── prog002conditionalStatements.cpp
│ │ │ ├── prog003onditionalStatements2.cpp
│ │ │ ├── prog004areaOfIntersectingRectangles.cpp
│ │ │ ├── prog005learningLoops.cpp
│ │ │ ├── prog006functions.cpp
│ │ │ ├── prog007arrays.cpp
│ │ │ ├── prog008arrays2.cpp
│ │ │ ├── prog009arrays3.cpp
│ │ │ ├── prog010twoDimArrays.cpp
│ │ │ ├── prog011finalProblem.cpp
│ │ │ ├── prog012evenOddSum.cpp
│ │ │ ├── prog013totalSumBoundariesDiagonals.cpp
│ │ │ ├── prog014pre4.cpp
│ │ │ ├── prog015targetMarbles.cpp
│ │ │ ├── prog016oscillatingPricesOfChakhri.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 02 Intro to CP
│ │ ├── 03 Pointers
│ │ │ ├── prog001pointers.cpp
│ │ │ ├── prog002pointerArithmetic.cpp
│ │ │ ├── prog003arraysAndPointes.cpp
│ │ │ ├── prog004characterPointers.cpp
│ │ │ ├── prog005pointersAndFunctions.cpp
│ │ │ ├── prog006pointersAndFunctions2.cpp
│ │ │ ├── prog007doublePointer.cpp
│ │ │ └── xoutput.txt
│ │ ├── 04 Dynamic Memory Allocation
│ │ │ ├── prog001addressTypecasting.cpp
│ │ │ ├── prog002referenceVariables.cpp
│ │ │ ├── prog003dynamicAllocation.cpp
│ │ │ ├── prog004multidimensionalArrays.cpp
│ │ │ ├── prog005hashDefine.cpp
│ │ │ ├── prog006globalVariables.cpp
│ │ │ ├── prog007inlineFunctions.cpp
│ │ │ ├── prog008defaultArguments.cpp
│ │ │ ├── prog009constantReferences.cpp
│ │ │ ├── prog010constantPointers.cpp
│ │ │ ├── prog012constantPointers2.cpp
│ │ │ └── xinput.txt
│ │ ├── 05 10 Recursion
│ │ │ ├── Recursion 1 Basic
│ │ │ │ ├── prog001factorial.cpp
│ │ │ │ ├── prog002fibonacci.cpp
│ │ │ │ ├── prog003power.cpp
│ │ │ │ ├── prog004printNumbersRecursively.cpp
│ │ │ │ ├── prog005countOfDigits.cpp
│ │ │ │ ├── prog007isSortedArray.cpp
│ │ │ │ ├── prog008sumOfArray.cpp
│ │ │ │ ├── prog009checkNumber.cpp
│ │ │ │ ├── prog010fistIndex.cpp
│ │ │ │ ├── prog011lastIndex.cpp
│ │ │ │ ├── prog012allIndices.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ └── Recursion 2 Advanced
│ │ │ ├── new20RETURNpermutationsOfString.cpp
│ │ │ ├── prog01strings_recursion.cpp
│ │ │ ├── prog02replaceCharacter.cpp
│ │ │ ├── prog03removeConsecutiveDuplicates.cpp
│ │ │ ├── prog04mergeSort.cpp
│ │ │ ├── prog05quickSort.cpp
│ │ │ ├── prog06strings_intro.cpp
│ │ │ ├── prog07RETURNallSubsequences.cpp
│ │ │ ├── prog08RETURNKeypad.cpp
│ │ │ ├── prog09PRINTallSubsequences.cpp
│ │ │ ├── prog10PRINTKeypad.cpp
│ │ │ ├── prog11chackAB.cpp
│ │ │ ├── prog12staircase.cpp
│ │ │ ├── prog13BinarySearchRecursive.cpp
│ │ │ ├── prog14RETURNsubsetOfArray.cpp
│ │ │ ├── prog15PRINTsubsetOfArray.cpp
│ │ │ ├── prog16RETURNsubsetSumToK.cpp
│ │ │ ├── prog17PRINTsubsetSumToK.cpp
│ │ │ ├── prog18RETURNallCodesOfString.cpp
│ │ │ ├── prog19PRINTallCodesOfString.cpp
│ │ │ ├── prog21PRINTpermutationsOfString.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 06 Time and Space Complexity Analysis
│ │ │ └── new001mergeSortTimeAnalysis.cpp
│ │ ├── 07 Language Tools
│ │ │ ├── prog001removeDuplicates.cpp
│ │ │ ├── prog002firstNonRepearingCharcterOfString.cpp
│ │ │ ├── prog003HussainSet.cpp
│ │ │ ├── prog004votersList.cpp
│ │ │ ├── prog005permuationAndPalindrome.cpp
│ │ │ ├── prog006loveForCharacters.cpp
│ │ │ ├── prog007differentNames.cpp
│ │ │ ├── prog008extractUniqueCharacters.cpp
│ │ │ ├── prog009warmReception.cpp
│ │ │ ├── prog010tellThePosition.cpp
│ │ │ ├── stl001vector.cpp
│ │ │ ├── stl002strings.cpp
│ │ │ ├── stl003pair.cpp
│ │ │ ├── stl004set.cpp
│ │ │ ├── stl005map.cpp
│ │ │ ├── stl006unordered_map.cpp
│ │ │ ├── stl007algorithm.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 08 Language Tools + Time and Complexity Assignment
│ │ │ ├── new001duplicatesInArray.cpp
│ │ │ ├── new003rotateArray.cpp
│ │ │ ├── new004findTheUniqueElement.cpp
│ │ │ ├── new006pairSum.cpp
│ │ │ ├── prog002tripletSum.cpp
│ │ │ ├── prog005digitSum.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 09 Searching and Sorting Applications
│ │ │ ├── new001TLE_aggressiveCows.cpp
│ │ │ ├── new001WA_aggressiveCows.cpp
│ │ │ ├── new005TLE_murderBF.cpp
│ │ │ ├── new007TLE_momosMarket.cpp
│ │ │ ├── prog001h_aggressiveCows.cpp
│ │ │ ├── prog002h_inversionsCount.cpp
│ │ │ ├── prog002inversionsCount.cpp
│ │ │ ├── prog003chefsRestaurant.cpp
│ │ │ ├── prog004variationCount.cpp
│ │ │ ├── prog005murderEfficient.cpp
│ │ │ ├── prog006an_distributeCandies.cpp
│ │ │ ├── prog006bh_distributeCandies.cpp
│ │ │ ├── prog008tajMahalEntry.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 11 Backtracking
│ │ │ ├── output_crossword_solver.gif
│ │ │ ├── prog001NQueensProblem.cpp
│ │ │ ├── prog002ratInAMaze.cpp
│ │ │ ├── prog003sudokuSolver.cpp
│ │ │ ├── prog004crosswordSolver.cpp
│ │ │ ├── self001haNQueensProblem.cpp
│ │ │ ├── self001nNQueensProblem.cpp
│ │ │ ├── self004crossword.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 12 Assignment Problems
│ │ │ ├── new002sortingTheSkills.cpp
│ │ │ ├── new003collectingTheBalls.cpp
│ │ │ └── prog001powerOfNumber.cpp
│ │ ├── 13 Bit Manipulation
│ │ │ ├── prog001turnOnIthBit.cpp
│ │ │ ├── prog002turnOffIthBit.cpp
│ │ │ ├── prog003returnFirstSetBit.cpp
│ │ │ ├── prog004turnOffFirstSetBit.cpp
│ │ │ ├── prog005clearAllBitsFromMSBtoI.cpp
│ │ │ ├── quiz001.cpp
│ │ │ ├── quiz002.cpp
│ │ │ ├── quiz003.cpp
│ │ │ ├── quiz004.cpp
│ │ │ ├── quiz005.cpp
│ │ │ └── quiz006_to_008.txt
│ │ ├── 14 Adhoc Problems
│ │ │ ├── prog001equalize.cpp
│ │ │ ├── prog003lightUpTheBulbs.cpp
│ │ │ ├── prog004circularListOfStudents.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 15 Modulo Arithmetic
│ │ │ └── numOfbalancedBTs.cpp
│ │ ├── 16 17 Dynammic Programming
│ │ │ ├── DP 1
│ │ │ │ ├── new012samAndSubstrings_BU.cpp
│ │ │ │ ├── new012samAndSubstrings.cpp
│ │ │ │ ├── new015boredom.cpp
│ │ │ │ ├── new022royAndCoinBoxes.cpp
│ │ │ │ ├── new023jonSnowAndHIsFavoriteNumber.cpp
│ │ │ │ ├── new025angryChildren.cpp
│ │ │ │ ├── prog001fibonacci_TD_BU.cpp
│ │ │ │ ├── prog002alphaCodes_TD_BU.cpp
│ │ │ │ ├── prog003alphaCodesWithZeroes_BU.cpp
│ │ │ │ ├── prog003halphaCodesWithZeroes_TD.cpp
│ │ │ │ ├── prog004longestIncreasingSubsequence_BU.cpp
│ │ │ │ ├── prog005lasgestBitonicSubsequence_BU.cpp
│ │ │ │ ├── prog006staircaseProblem_BU.cpp
│ │ │ │ ├── prog007coinChange_BU.cpp
│ │ │ │ ├── prog008minimumCostGrid_TD_BU.cpp
│ │ │ │ ├── prog009magicGrid2D_BU.cpp
│ │ │ │ ├── prog010a_Kadanes_algorithm.cpp
│ │ │ │ ├── prog010b_maxSumRectangle_BU.cpp
│ │ │ │ ├── prog011ah_constructTheArray_BU.cpp
│ │ │ │ ├── prog011b_constructTheArray_BU.cpp
│ │ │ │ ├── prog012boredom_BU.cpp
│ │ │ │ ├── prog013a_getMaxMoney_TD.cpp
│ │ │ │ ├── prog013b_getMaxMoney_BU.cpp
│ │ │ │ ├── prog014findMaxSquareWithAllZeros_BU.cpp
│ │ │ │ ├── prog015countBSTs_TD.cpp
│ │ │ │ ├── prog017minimumNumberOfChocolates_BU.cpp
│ │ │ │ ├── prog019hasanAndTrip.cpp
│ │ │ │ ├── prog020vanyaAndGCD.cpp
│ │ │ │ ├── prog021adjacentBitCount.cpp
│ │ │ │ ├── prog024alyonaAndSpreadsheet.cpp
│ │ │ │ ├── xinput.txt
│ │ │ │ └── xoutput.txt
│ │ │ └── DP 2
│ │ │ ├── new007BsubsetSumSpaceOptimized.cpp
│ │ │ ├── new011AsquareBrackets.cpp
│ │ │ ├── new011BsquareBrackets.cpp
│ │ │ ├── new012distinctSubsequences.cpp
│ │ │ ├── prog001longestCommonSubsequence.cpp
│ │ │ ├── prog002longestCommonSubsequenceStrings.cpp
│ │ │ ├── prog003editDistance_TD.cpp
│ │ │ ├── prog004balikaVadhu_TD.cpp
│ │ │ ├── prog005A_knapsack_TD.cpp
│ │ │ ├── prog005B_knapsack_BU.cpp
│ │ │ ├── prog006party_problem.cpp
│ │ │ ├── prog007AsubsetSum.cpp
│ │ │ ├── prog008miserMan.cpp
│ │ │ ├── prog009traderPorfit.cpp
│ │ │ ├── prog010charlieAndPilots.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 18 Greedy Techniques
│ │ │ ├── new004fractionalKnapsack.cpp
│ │ │ ├── prog001minAbsoluteDifferenceInArray.cpp
│ │ │ ├── prog002NikunjAndDonuts.cpp
│ │ │ ├── prog003activitySelection.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 19 Segment Trees
│ │ │ ├── include
│ │ │ │ └── segmentTree.hpp
│ │ │ ├── prog001segmentTreeOperations.cpp
│ │ │ ├── prog002rangeMinimumQuery.cpp
│ │ │ ├── prog003maximumPairSum.cpp
│ │ │ ├── prog004lazyPropagationUse.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── 24 Tries
│ │ │ └── new001trieXORpair.cpp
│ │ └── Graphs
│ │ └── 01 Graphs Part 1
│ │ ├── prog001DFS_BFS_connected_undirected.cpp
│ │ ├── prog002DFS_BFS_disconnected_undirected.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── Doubts
│ │ ├── heap doubt.jpg
│ │ ├── pic1.png
│ │ └── pic2.png
│ ├── Random Programs
│ │ ├── changeSeq2.cpp
│ │ ├── changeSeq.cpp
│ │ ├── colsum.cpp
│ │ ├── digitSum.cpp
│ │ ├── sortBinaryArray.cpp
│ │ ├── SplitSequence.cpp
│ │ └── trickymacro.cpp
│ └── Very important.png
├── Codility
│ ├── count_operations.cpp
│ └── xoutput.txt
├── CSES
│ ├── 01-introductory
│ │ ├── prog001weirdAlgorithm
│ │ ├── prog001weirdAlgorithm.cpp
│ │ ├── prog002missingNumber
│ │ ├── prog002missingNumber.cpp
│ │ ├── prog003longestRepititions
│ │ ├── prog003repititions.cpp
│ │ ├── prog004increasingArray
│ │ ├── prog004increasingArray.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── 02-searching-sorting
│ ├── prog001distinctNumbers
│ ├── prog001distinctNumbers.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── data_type_ranges.jpeg
├── data_types_sizes.png
├── DP_CN.txt
├── FINAL450-checklist.txt
├── GeeksForGeeks
│ ├── Algorithms
│ │ ├── Backtracking
│ │ │ ├── generateParenthesisTLEiterative.cpp
│ │ │ ├── generateParenthesisWArecursive.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Bit Magic
│ │ │ ├── checkSetBits.cpp
│ │ │ └── longestConsecutiveOnes.cpp
│ │ ├── DP
│ │ │ ├── CountNstairsWithoutOrder.cpp
│ │ │ ├── EqualSumPartition_DP_BU.cpp
│ │ │ ├── IsSubsetSum_DP_BU.cpp
│ │ │ ├── Knapsack01_DP_BU.cpp
│ │ │ ├── Knapsack01_DP_TD.cpp
│ │ │ ├── LongestCommonSubsequence.cpp
│ │ │ ├── MaxSumRectangles.cpp
│ │ │ ├── MinimumNumberOfCoins.cpp
│ │ │ ├── MinimumSubsetSumDifference_DP_BU.cpp
│ │ │ ├── NEWNCr2.cpp
│ │ │ ├── NEWNCr.cpp
│ │ │ ├── ReachGivenCoins.cpp
│ │ │ ├── RodCutting.cpp
│ │ │ ├── WildcardPatternMatching.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── Searching-Sorting
│ │ ├── BinarySearchRecursive.cpp
│ │ ├── MiddleOfThree.cpp
│ │ └── SearchRotatedSortedArray.cpp
│ ├── Data Structures
│ │ ├── Arrays
│ │ │ ├── CommonElements.cpp
│ │ │ ├── CountPairsWithGivenSum.cpp
│ │ │ ├── duplicatesInArray.cpp
│ │ │ ├── FindSmallestPositiveNumberInArray.cpp
│ │ │ ├── KadaneAlgoContiguousSubarrayMaxSum.cpp
│ │ │ ├── KlargeElements.cpp
│ │ │ ├── LeadersInArray.cpp
│ │ │ ├── MissingNumberInArray.cpp
│ │ │ ├── NEW_KthMaxMinElement.cpp
│ │ │ ├── NEW_MinimumNumberOfJumps.cpp
│ │ │ ├── NEWRotateArray.cpp
│ │ │ ├── peakInArray.cpp
│ │ │ ├── ReverseArrayString.cpp
│ │ │ ├── RotateArrayOnePosition.cpp
│ │ │ ├── rotateMatrixAnti90.cpp
│ │ │ ├── Sort012.cpp
│ │ │ ├── UinonOfTwoArrays.cpp
│ │ │ ├── waveArray.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Graphs
│ │ │ ├── bfs.cpp
│ │ │ ├── bipartiteGraph.cpp
│ │ │ ├── dfs.cpp
│ │ │ ├── graphCycleUndirected.cpp
│ │ │ ├── NEWcovidSpread.cpp
│ │ │ ├── NEWCycleInDirectedGraph.cpp
│ │ │ ├── NEWtopologicalSort.cpp
│ │ │ ├── numIslands.cpp
│ │ │ ├── printAdjacencyList.cpp
│ │ │ ├── rottenOranges.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Linked Lists
│ │ │ ├── countNodesOfLinkedList.cpp
│ │ │ ├── deleteNodeWithoutHeadPointer.cpp
│ │ │ ├── detectLoopInLinkedList.cpp
│ │ │ ├── findLengthOfLoop.cpp
│ │ │ ├── linkedListInsertion.cpp
│ │ │ ├── merge2SortedLists.cpp
│ │ │ ├── midPointOfLinkedList.cpp
│ │ │ ├── NEWIntersectionYshapedLinkedList.cpp
│ │ │ ├── NEW_NthNodeFromTheEnd.cpp
│ │ │ ├── palindromeLinkedList.cpp
│ │ │ ├── removeLoopInLinkedList.cpp
│ │ │ ├── reverseLinkedList.cpp
│ │ │ ├── rotateLinkedList.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ ├── Strings
│ │ │ ├── implementAtoI.cpp
│ │ │ ├── maxFrequencyOfWord.cpp
│ │ │ ├── multiplyStrings.cpp
│ │ │ ├── removeDuplicates.cpp
│ │ │ ├── wordBoggle.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── Trees
│ │ ├── Binary Trees
│ │ │ ├── boundaryTraversal.cpp
│ │ │ ├── BTtoCDLL.cpp
│ │ │ ├── constructBinaryTreeFromParentArray.cpp
│ │ │ ├── countLeaves.cpp
│ │ │ ├── diagonalTraversal.cpp
│ │ │ ├── diameterBT.cpp
│ │ │ ├── heightOfTree.cpp
│ │ │ ├── invertORMirrorBinaryTree.cpp
│ │ │ ├── isIdentical.cpp
│ │ │ ├── LCAofBT.cpp
│ │ │ ├── leftViewOfBinaryTree.cpp
│ │ │ ├── maxSumFromAnyNode.cpp
│ │ │ ├── maxWidthOfBT.cpp
│ │ │ ├── minMaxElementInTree.cpp
│ │ │ ├── sumTree.cpp
│ │ │ ├── topViewOfBT.cpp
│ │ │ ├── TraversalInorderRecursive.cpp
│ │ │ └── TraversalLevelOrderIterative.cpp
│ │ └── BST
│ │ ├── checkForBST.cpp
│ │ ├── fixNodesInBST.cpp
│ │ ├── LCAofBST.cpp
│ │ ├── minElementInBST.cpp
│ │ ├── NEW_deleteNodesGEthanK.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── Mathematical
│ │ ├── armstrongNumber.cpp
│ │ └── squareRootOfNumber.cpp
│ ├── Programme Cpp GFG
│ │ └── EfficientCppGfg.cpp
│ ├── Programme STL GFG
│ │ ├── sortPair.cpp
│ │ └── spliceAndMerge.cpp
│ └── Public
│ └── Manipal Contest
│ ├── 1n1.cpp
│ ├── 1n2.cpp
│ ├── 2.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── HackerEarth
│ ├── Contests
│ │ └── August 23 Cicuits 2022
│ │ ├── nA
│ │ ├── nA.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Data Structures
│ └── Graphs
│ ├── ConnectedComponentsInAGraph.cpp
│ ├── MonkAndIslands.cpp
│ └── WA_BishuAndHisGirlfriend.cpp
├── Hackerrank
│ ├── Alogrithms
│ │ ├── 01 Warmup
│ │ │ ├── diagonal_difference.cpp
│ │ │ ├── plus_minus.cpp
│ │ │ ├── simple_array_sum.cpp
│ │ │ ├── solve_me_first.cpp
│ │ │ └── staircase.cpp
│ │ ├── 08 DP
│ │ │ └── construct_the_array_BU.cpp
│ │ ├── 09 Greedy
│ │ └── 10 Bit Manipulation
│ │ ├── great_xor.cpp
│ │ └── lonely_integer.cpp
│ ├── Data Structures
│ │ ├── 01 Arrays
│ │ │ ├── array1d_reverse.cpp
│ │ │ ├── array2d_hourglass.cpp
│ │ │ ├── dynamic_array.cpp
│ │ │ ├── left_rotation.cpp
│ │ │ ├── NEWarray_manipulation.cpp
│ │ │ ├── sparse_arrays.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── 02 Linked List
│ │ ├── compare_linked_list.cpp
│ │ ├── delete__node.cpp
│ │ ├── insert_node_at_head.cpp
│ │ ├── insert_node_at_position.cpp
│ │ ├── insert_node_at_tail.cpp
│ │ ├── print_reverse_LL.cpp
│ │ └── print_singly_linked_list.cpp
│ ├── Programming Langauges
│ │ ├── Cpp
│ │ │ └── 01 Introduction
│ │ │ ├── Basic_Data_types.cpp
│ │ │ └── Hello_world.cpp
│ │ └── Python
│ │ ├── 01 Introduction
│ │ │ ├── arithmetic_operators.py
│ │ │ ├── function.py
│ │ │ ├── hello_world.py
│ │ │ ├── loops.py
│ │ │ ├── print_function.py
│ │ │ └── python_division.py
│ │ └── 02 Basic Data Types
│ │ ├── finding_percentage.py
│ │ ├── lists.py
│ │ ├── nested_list.py
│ │ ├── runner_up_score.py
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Solution.java
├── InterviewBit
│ ├── Contests
│ │ ├── CodeDrift27August22
│ │ │ ├── n1
│ │ │ ├── n2.cpp
│ │ │ ├── n3B.cpp
│ │ │ ├── n3.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── CodeDriftXAugust21
│ │ ├── n1.cpp
│ │ ├── n2.cpp
│ │ ├── n3B.cpp
│ │ ├── n3.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── DSA
│ ├── 01 Arrays
│ │ ├── FindDuplicateInArray.cpp
│ │ ├── KthRowOfPascalTriangle.cpp
│ │ ├── MaximumAbsoluteDifference.cpp
│ │ ├── MinimumLightsToActivate.cpp
│ │ ├── MinStepsInInfiniteGrid.cpp
│ │ ├── NEW_MaximumSumTriplet.cpp
│ │ ├── PerfectPeakOfArr.cpp
│ │ ├── SmallestPositiveInteger.cpp
│ │ ├── SpiralOrderMatrix1.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── 02 Math
│ │ ├── allFactors.cpp
│ │ ├── binaryRepresentation.cpp
│ │ ├── distributeInCircle.cpp
│ │ ├── ExcelColumnTitle.cpp
│ │ ├── hammingDistance.cpp
│ │ ├── isPower.cpp
│ │ ├── sieveOfEratosthenes.cpp
│ │ ├── totalBishopMoves.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── 03 BInary Search
│ │ ├── NEW_woodCut.cpp
│ │ ├── searchInBitonicArray.cpp
│ │ ├── smallerOrUpperElements.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── 04 Strings
│ │ ├── amazingSubarrays.cpp
│ │ ├── atoi.cpp
│ │ ├── compareVersionNunmber.cpp
│ │ ├── implementStrStr.cpp
│ │ ├── longestCommonPrefix.cpp
│ │ ├── NEW_rotationTimes.cpp
│ │ ├── NEW_validNumber.cpp
│ │ ├── validIPv4address.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── 05 Bit Manipulation
│ │ ├── NEW_countTotalSetBits.cpp
│ │ ├── numberOfSetBits.cpp
│ │ ├── singleNumber2.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── 12 Trees
│ ├── BinaryTreeNode.hpp
│ └── CNBinaryTree.hpp
├── LeetCode
│ ├── 1039.minimum-score-triangulation-of-polygon.cpp
│ ├── 121.best-time-to-buy-and-sell-stock.cpp
│ ├── 1.two-sum.cpp
│ ├── 226.invert-binary-tree.cpp
│ ├── 523.continuous-subarray-sum.cpp
│ ├── 53.maximum-subarray.cpp
│ ├── 98.validate-binary-search-tree.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── README.md
├── Resources
│ ├── Guides
│ │ ├── FINAL450.xlsx
│ │ └── GUIDE TO COMPETITIVE PROGRAMMING_.pdf
│ ├── Snippets
│ │ ├── changeLettersToNumbers.py
│ │ ├── multispace_scanning.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Templates
│ ├── bit_magic.cpp
│ ├── CP
│ │ ├── BitManipulation.cpp
│ │ ├── NumberTheory.cpp
│ │ └── SegmentTree.cpp
│ ├── cpp.tmpl
│ ├── DSA
│ │ ├── BinarySearchTree.cpp
│ │ ├── BinaryTree.cpp
│ │ ├── GraphUnweighted.cpp
│ │ ├── GraphWeighted.cpp
│ │ └── LinkedList.cpp
│ └── sublime_io_template.cpp
├── snakeToCamel.sh
├── SPOJ
│ ├── ACODEn_Alphacode.cpp
│ ├── ACPC10A_whats_next.cpp
│ ├── ADDREV_adding_reverse_numbers.cpp
│ ├── AE00_Rectangles.cpp
│ ├── AGGRCOWh_aggressive_cows.cpp
│ ├── AGGRCOWn_Aggressive_cows.cpp
│ ├── BUGLIFE_A_Bugs_Life.cpp
│ ├── CANDY_Candy_1.cpp
│ ├── FASHION_Fashion_Shows.cpp
│ ├── FCTRL2n_small_factorials.cpp
│ ├── FCTRLa_trailing_zeros.cpp
│ ├── FCTRLn_trailing_zeros.cpp
│ ├── JULKAn_Julka.cpp
│ ├── LASTDIGa_The_last_digit.cpp
│ ├── LASTDIGn_The_last_digit.cpp
│ ├── MPILOT_pilots.cpp
│ ├── NSTEPS_Number_Steps.cpp
│ ├── PALINn_The_Next_Palindrome.cpp
│ ├── PRIME1a_Prime_Generator.cpp
│ ├── PRIME1TLE_Prime_Generator.cpp
│ ├── PT07Y_Is_it_a_tree.cpp
│ ├── SAMER08Fn_Feynman.cpp
│ ├── SBSTR1n_substring_check.cpp
│ ├── TDKPRIMEn_finding_the_Kth_prime.cpp
│ ├── TESTa_Life_theUniverse_and_Everything.cpp
│ ├── TESTb_Life_theUniverse_Everything.cpp
│ ├── TOANDFRO_To_and_Fro.cpp
│ ├── xinput.txt
│ └── xoutput.txt
├── temp
│ ├── backtracking
│ │ └── nA.cpp
│ ├── icpc
│ │ └── nA.cpp
│ ├── set01
│ │ ├── nA
│ │ ├── nA.cpp
│ │ ├── nB
│ │ ├── nB.cpp
│ │ ├── nC
│ │ ├── nC.cpp
│ │ ├── nD.cpp
│ │ ├── nE.cpp
│ │ ├── Solution.java
│ │ ├── temp.py
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── set02
│ │ ├── nA
│ │ ├── nA.cpp
│ │ ├── nB
│ │ ├── nB.cpp
│ │ ├── nC
│ │ ├── nC.cpp
│ │ ├── nD
│ │ ├── nD.cpp
│ │ ├── nE
│ │ ├── nE.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── test
│ ├── nA.cpp
│ ├── nB
│ ├── nB.cpp
│ ├── nC.cpp
│ ├── xerror.txt
│ ├── xinput.txt
│ └── xoutput.txt
├── Unclassified
│ ├── New
│ │ ├── add-two-ll.cpp
│ │ ├── CODEZEN_interestingSequences2.cpp
│ │ ├── CODEZEN_interestingSequences.cpp
│ │ ├── CODEZEN_rat_in_maze.cpp
│ │ ├── word_wrap_newspaper.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Working
│ ├── grid-dp-sum.cpp
│ ├── xinput.txt
│ └── xoutput.txt
└── Youtube-learning
├── Basic ALGO
│ ├── Backtracking_Branch_Bound
│ ├── Divide_and_Conquer
│ ├── DP
│ │ ├── DP Aditya Verma
│ │ │ ├── include
│ │ │ │ ├── header001_subset_sum.hpp
│ │ │ │ ├── header002_count_of_subset_sum.hpp
│ │ │ │ └── header003_longest_common_subsequence.hpp
│ │ │ ├── prog001_intro_to_dp.txt
│ │ │ ├── prog002_types_of_knapsack.txt
│ │ │ ├── prog003_01_Knapsack_DP_top_down_recursive_only.cpp
│ │ │ ├── prog004_01_Knapsack_DP_top_down_recursion_memoization.cpp
│ │ │ ├── prog005_01_Knapsack_DP_bottom_up_iterative.cpp
│ │ │ ├── prog006_problems_similar_to_01_knapsack.txt
│ │ │ ├── prog007_SubSet_Sum_Problem_DP_bottom_up.cpp
│ │ │ ├── prog008_Equal_subset_sum_DP_bottom_up.cpp
│ │ │ ├── prog009_Count_of_subset_sum_DP_bottom_up.cpp
│ │ │ ├── prog010n_min_subset_diff_DP_bottom_up.cpp
│ │ │ ├── prog011_count_of_subset_given_diff_DP_bottom_up.cpp
│ │ │ ├── prog012_target_sum_DP_bottom_up.txt
│ │ │ ├── prog013_ubounded_knapsack_DP_bottom_up.cpp
│ │ │ ├── prog014_rod_cutting_problem.cpp
│ │ │ ├── prog015_coin_change_max_ways_DP_bottom_up.cpp
│ │ │ ├── prog018_LCS_Types.txt
│ │ │ ├── prog019_longest_common_subsequence_DP_top_down_recursive_only.cpp
│ │ │ ├── prog020_longest_common_subsequence_DP_top_down_recursive_memoization.cpp
│ │ │ ├── prog021_longest_common_subsequence_DP_bottom_up.cpp
│ │ │ ├── prog022_longest_common_substring_DP_bottom_up.cpp
│ │ │ ├── prog023_print_longest_common_subsequence_DP_bottom_up.cpp
│ │ │ ├── prog024n_shortest_common_supersequence_DP_bottom_up.cpp
│ │ │ ├── prog025_min_num_of_insertions_deletions_DP_bottom_up.cpp
│ │ │ ├── prog026_longest_palindromic_sequence_DP_bottom_up.cpp
│ │ │ ├── prog033_matrix_chain_multiplication_DP_top_down_recursive_only.cpp
│ │ │ ├── prog034A_matrix_chain_multiplication_DP_top_down_recursive_memoization.cpp
│ │ │ ├── prog034Bn_matrix_chain_multiplication_DP_bottom_up_iterative.cpp
│ │ │ └── xinput.txt
│ │ └── DP Part 1 CodeNCode
│ │ ├── prog01staircase.cpp
│ │ ├── prog02staircase2.cpp
│ │ ├── prog03TwoXnTilingProblem.cpp
│ │ ├── prog04AsubsetsAndBitmasking1.cpp
│ │ ├── prog04BsubsetsAndBitmaskingInegers.cpp
│ │ ├── prog05subsetSumUsingBitmask.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── Greedy
│ ├── Recursion
│ │ ├── Recursion CB Webinar
│ │ │ ├── knight_tour_multiple_solutions_input.txt
│ │ │ ├── knight_tour_multiple_solutions_output.txt
│ │ │ ├── prog01_factorial.cpp
│ │ │ ├── prog02_Inc_Dec_Print.cpp
│ │ │ ├── prog03A_kinght_tour.cpp
│ │ │ ├── prog03B_kinght_tour_all_possible.cpp
│ │ │ └── prog04_sudoku_solver.cpp
│ │ └── Recursion MCS
│ │ ├── basic_exponentiation.cpp
│ │ ├── modular_exponentiation.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ └── Searching and Sorting
│ ├── Searching
│ │ └── iterative_binary_search.cpp
│ └── Sorting
│ ├── failBFS.c
│ ├── Jenny Sorting Algorithms
│ │ ├── bubbleSort.c
│ │ ├── heapANDheapSort.c
│ │ ├── insertionSort.c
│ │ └── selectionSort.c
│ └── shelllSort.c
├── Basic DS
│ ├── Arrays
│ │ ├── PermutationGenerationRec.cpp
│ │ ├── SubsetGenerationRecIter.cpp
│ │ ├── xinput.txt
│ │ └── xoutput.txt
│ ├── Disjoint Sets
│ │ ├── find.cpp
│ │ └── union.cpp
│ ├── Graphs
│ │ ├── Graphs Part 1 CodeNCode
│ │ │ ├── new13FireEscapeRoutes.cpp
│ │ │ ├── new15longestPathInTreeORdiameterOfGRaph.cpp
│ │ │ ├── new19primePath.cpp
│ │ │ ├── new20feasiblePath.cpp
│ │ │ ├── prog02graph.cpp
│ │ │ ├── prog03dfs.cpp
│ │ │ ├── prog04connectedComponents.cpp
│ │ │ ├── prog05ConnectedComponentsInAGraph.cpp
│ │ │ ├── prog07BishuAndHisGF.cpp
│ │ │ ├── prog08isItATree.cpp
│ │ │ ├── prog09BipartiteTest.cpp
│ │ │ ├── prog10BugsLife.cpp
│ │ │ ├── prog11cycleDetection.cpp
│ │ │ ├── prog12InOutTimesOfNodes.cpp
│ │ │ ├── prog16subtreeSize.cpp
│ │ │ ├── prog18bfs.cpp
│ │ │ ├── prog23bridgesInGraph.cpp
│ │ │ ├── prog26articulationPoints.cpp
│ │ │ ├── prog29kahnsAlgorithmTopologicalSorting.cpp
│ │ │ ├── prog32DFSIn2Dgrid.cpp
│ │ │ ├── prog33connectedComponentsIn2DgridDFS.cpp
│ │ │ ├── prog34BFSIn2Dgrid.cpp
│ │ │ ├── xinput.txt
│ │ │ └── xoutput.txt
│ │ └── Graphs Part 2 CodeNCode
│ │ ├── prog001kruskal.cpp
│ │ ├── prog002LCA.cpp
│ │ ├── prog003LCABinaryLifting.cpp
│ │ ├── prog004distanceBetweenTwoNodes.cpp
│ │ └── xinput.txt
│ ├── Linked_List
│ ├── Queues
│ ├── Segment Trees
│ │ └── Code N Code
│ │ ├── query.cpp
│ │ └── segmentTree.cpp
│ ├── Stacks
│ ├── Trees
│ │ └── Trees KnowledgeCenter
│ │ └── prog001_trees.cpp
│ └── Tries
│ ├── AshishKumar
│ │ └── TrieCompleteAK.cpp
│ └── Faad-Coder
│ ├── trie-implementation.cpp
│ ├── xinput.txt
│ └── xoutput.txt
└── Competitive Programming
├── Bit Manipulation
│ ├── generateSubsets.cpp
│ ├── xinput.txt
│ └── xoutput.txt
└── Maths
├── Arithmetic
├── Combinatorics
├── Geometric Algorithms
├── Network Flow Algorithms
└── Number Theory
└── NT CodeNCode
├── prog002primality_test.cpp
├── prog004sieve_of_eratosthenes.cpp
├── prog005prime_factorization.cpp
├── prog007binary_modular_exponentiation.cpp
├── prog010prime_factorization_using_sieve.cpp
├── prog011matrix_exponentiation.cpp
├── xinput.txt
└── xoutput.txt
245 directories, 1235 files