Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSA Ongoing

This repository contains Data Structures and Algorithms (DSA) practice problems and solutions, organized by lecture topics.

Structure

The repository is organized into lecture folders (Lec1, Lec2, etc.), each containing relevant Java files and PDFs for the topics covered.

Lectures

Lec1: Basic Programming

  • Check_prime.java
  • Grade_Card.java
  • Inc_dec.java
  • Loop_Demo.java
  • Maximum_3_Number.java
  • Odd_Even.java
  • Test.java

Lec2: Pattern Printing

  • Pattern0.java
  • Pattern1.java
  • Pattern12.java
  • Pattern13.java
  • Pattern14.java
  • Pattern2.java
  • Pattern21.java
  • Pattern4.java
  • Pattern9.java

Lec3: Loops and Math

  • Catch_the_Coin.java
  • Fibo.java
  • For_Loops.java
  • GCD.java
  • Pattern25.java
  • Pattern27.java
  • Pattern_Rhombus.java

Lec4: Number Systems

  • Bin_to_Dec.java
  • Data_Type_Demo.java
  • Dec_to_Bin.java

Lec5: Arrays

  • Data_Demo_2.java
  • Data_Demo_3.java
  • Data_Demo_4.java
  • Inverse_of_number.java
  • Pascal_Triangle.java

Lec6: Functions

  • Array_Demo.java
  • Fun_Demo_1.java
  • Fun_Demo_2.java
  • Fun_Demo_3.java
  • Is_Armstrong_Number.java
  • User_Input_and_Display.java

Lec7: Array Manipulation

  • Array_Swap_1.java
  • Array_Swap_2.java
  • Array_Swap_3.java
  • Linear_Search.java
  • Maximum_in_Array.java
  • Reverse_Array.java
  • Reverse_Range.java
  • Rotate_Array.java

Lec8: Array Problems

  • Majority_Element.java
  • Product_of_Array_Except_Self.java
  • Reversal_Algo.java
  • Trapping_Rain_Water.java

Lec9: Sorting

  • Bubble_Sort.java
  • Insertion_Sort.java
  • Selection_Sort.java

Lec10: Searching and Algorithms

  • Binary_Search.java
  • First_Bad_Version.java
  • Kadanes_Algo.java
  • Kth_Root.java
  • Maximum_Subarray.java
  • Next_Permutation.java

Lec11: Time and Space Complexity

  • Time_and_Space_Comp.java

Lec12: 2D Arrays

  • Input_and_Print.java
  • Search_a_2D_Matrix_II.java
  • Tranpose_Matrix.java
  • Two_2D_Array_Demo.java
  • Wave_Print.java

Lec13: Circular Problems

  • Gas_Station.java
  • Sipral_Print.java

Lec14: Binary Search Applications

  • Aggressive_cows.java
  • Book_Allocation.java

Lec15: Strings

  • Check_Palindromic.java
  • Reverse_Words_in_a_String.java
  • String_Compression.java
  • String_demo_1.java
  • String_demo_2.java
  • String_demo_3.java
  • String_Equal.java
  • SubString_Print.java

Lec16: String Manipulation

  • Playing_with_Good_String.java
  • Wrapper_Class.java

Lec17: ArrayList

  • ArraysList_Demo.java
  • ArraysList_Demo_2.java
  • Finding_CB_Numbers.java
  • Static_Fun_Demo.java
  • String_to_Number.java
  • SubString_Lenght_Wise.java

Lec18: StringBuilder

  • Arrays_Sum_Of_Two_Arrays.java
  • String_Builder_Demo.java
  • String_Builder_Demo2.java

Lec19: Sliding Window

  • Freq_Array.java
  • Kartik_Bhaiya_And_Strings.java
  • Maximum_Window_Sum.java
  • Subarray_Product_Less_Than_K.java

Lec20: Recursion Basics

  • Fact.java
  • Fact_Tail.java
  • First_Occ_Of_Array.java
  • Power.java
  • Print_Dec.java
  • Prtint_Inc.java

Lec21: Recursion

  • Coin_Toss.java
  • Coin_Toss2.java
  • Fibo.java
  • SubSequnce.java

Lec22: Backtracking

  • Board_Path.java
  • Count_SubSequnce.java
  • Generate_Parentheses.java
  • Lexicographical_Numbers.java

Lec23: Permutations

  • Key_Paid.java
  • Permutation.java
  • Permutation2.java

Lec24: Combinations

  • Coin_Combination.java
  • Coin_Permuation.java
  • Maze_path.java
  • Queen_Combination.java
  • Queen_Permuation.java

Lec25: N-Queen, Sudoku

  • Combination_Sum.java
  • N_Queen.java
  • Palindrome_Partitioning.java
  • Rat_maze.java
  • Sudoku_Solver.java

Lec26: Sorting Algorithms

  • Axis_Orbit.java
  • Count_Primes.java
  • Merge_Sort.java
  • Merge_Two_Sorted_Array.java
  • Partition_in_Array.java
  • Quick_Sort.java
  • Sieve_of_Eratosthenes.java

Lec27: Randomized Algorithms

  • Randomized_quick_Sort.java
  • Random_Number.java

Lec28: Stacks

  • Construct_Smallest_Number_From_DI_String.java
  • Find_the_Celebrity.java
  • Stack_Add_Last.java
  • Stack_Java.java
  • Stack_Reverse.java
  • Student.java
  • Student_Client.java

Lec29: Monotonic Stack

  • Histogram.java
  • Maximal_Rectangle.java
  • Next_Greater_Element.java
  • Stock_Span.java

Lec30: Linked List

  • LinkedList.java
  • LinkedListClient.java
  • Linked_List_Cycle.java
  • Middle_of_the_Linked_List.java

Lec31: Linked List Problems

  • Cycle_removal.java
  • Delete_Node_in_a_Linked_List.java
  • Intersection_of_Two_Linked_Lists.java
  • Merge_Two_Sorted_Lists.java
  • Reverse_Linked_List.java

Lec32: OOP

  • Divisible_SubArray.java
  • Person.java
  • Person_Client.java
  • Student.java
  • Student_Client.java

Lec33: OOP

  • Add_number.java
  • C.java
  • Client.java
  • P.java
  • Student.java
  • Student_Client.java

Lec34: Abstract Classes, Generics

  • A.java
  • Abstract_Demo.java
  • Abstract_Demo2.java
  • Abstract_Demo_Client.java
  • B.java
  • C.java
  • Client.java
  • Generics_Demo.java
  • LinkedList.java
  • LinkedList_Client.java
  • Pair.java
  • StackI.java
  • Stack_Class.java
  • Stack_Client.java
  • Student.java

Lec35: Greedy

  • BUSYMAN.java
  • Cars.java
  • CarsClient.java

Lec36: Binary Tree

  • BinaryTree.java
  • BinaryTree_Client.java

Lec37: Tree Questions

  • Tree_Question.java

Lec38: Binary Tree Traversals

  • Binary_Tree_Right_Side_View.java
  • Diameter_of_Binary_Tree.java
  • Diameter_of_Binary_Tree_Opti.java
  • Flip_Equivalent_Binary_Trees.java
  • Lowest_Common_Ancestor.java
  • Path_Sum.java
  • Sum_Root_to_Leaf_Numbers.java
  • Symmetric_Tree.java

Lec40: Binary Search Tree

  • Binary_Search_Tree.java
  • Binary_Search_Tree_Client.java
  • Create_tree_Using_Level_Order.java
  • Delete_Node_in_a_BST.java
  • Insert_into_a_Binary_Search_Tree.java
  • Maximum_Sum_BST_in_Binary_Tree.java
  • Validate_Binary_Search_Tree.java

Lec41: Binary Tree Construction

  • Binary_Tree_Cameras.java
  • Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal.java
  • Distribute_Coins_in_Binary_Tree.java
  • Flatten_Binary_Tree_to_Linked_List.java

Lec42: Binary Tree Serialization

  • Inorder_Successor_in_BST.java
  • Maximum_Width_of_Binary_Tree.java
  • Serialize_and_Deserialize_Binary_Tree.java

Lec43: Heap

  • Heap.java
  • HeapClient.java
  • Kth_Largest_Element_in_an_Array.java
  • Merge_k_Sorted_Lists.java

Lec44: HashMap

  • HashMap_Demo.java
  • IPO_LeetCode.java
  • Meeting_Rooms_II.java
  • Minimum_Sum_Pair.java
  • Set_Demo.java

Lec45: HashMap Implementation

  • HashMap.java
  • HashMapClient.java
  • Longest_Consecutive_Sequence.java

Lec46: HashMap Applications

  • Fibo.java
  • Group_Anagrams.java
  • Top_View.java
  • Vertical_Order_Traversal_of_a_Binary_Tree.java

Lec47: Dynamic Programming

  • House_Robber.java
  • Longest_Increasing_Subsequence.java

Lec48: Dynamic Programming

  • Coin_Change_II.java
  • Distinct_Subsequences.java
  • Edit_distance.java
  • Longest_Common_Subsequence.java
  • Uncrossed_Lines.java

Lec49: Dynamic Programming

  • Knapsack_Zero_One.java
  • Minimum_Falling_Path_Sum.java
  • Minimum_Falling_Path_Sum2.java
  • Minimum_Path_Sum.java
  • Valentine_Magic.java

Lec50: Dynamic Programming

  • Build_Binary_Expression_Tree_From_Infix_Expression.java
  • Lis_N_Log_N.java
  • Wine_Problem.java

Lec51: Dynamic Programming

  • Burst_Balloons.java
  • MCM.java
  • Optimal_Game_Strategy_II.java

Lec52: Graph

  • Graph.java
  • GraphClient.java

Lec53: Graph

  • Graph_2.java
  • Graph_Valid_Tree.java

Lec54: Graph

  • Is_Graph_Bipartite.java

Lec55: Graph

  • Prims_Algorithm.java
  • Topological_Sort.java

Lec56: Graph

  • Cycle_In_Graph.java
  • DisJoinSet.java
  • Kruskals_Algorithm.java

Lec57: Graph

  • BellManFord.java
  • Dijkstra_Algorithm.java

Lec58: Graph

  • Alien_Dictionary.java
  • Longest_Cycle_in_a_Graph.java

Lec59: Graph

  • MST_0_1.java
  • MST_0_1_Opti.java
  • The_Maze_II.java

Lec60: Bit Manipulation

  • Count_Set_Bit.java
  • Left_Shift.java
  • Magic_number.java
  • Odd_Even.java
  • Right_Shift.java
  • Single_Number.java

Lec61: Bit Manipulation

  • Single_Number_III.java
  • SubSequnce_Without_Recursion.java

Lec62: Bit Manipulation

  • Ehab_the_Xorcist.java
  • Preparing_Olympiad.java

Lec63: Bit Manipulation

  • Bitwise_XOR_of_All_Pairings.java
  • Find_XOR_Sum_of_All_Pairs_Bitwise_AND.java
  • Minimize_XOR.java
  • Neighboring_Bitwise_XOR.java

Lec64: Math

  • Coins.java
  • Set_Theory_venn.java

Lec65: Trie

  • Trie.java
  • Tries_Contacts.java

Recursion Doubt Class

  • Chessboard_Board.java
  • Split_array.java
  • Subset_problem.java
  • Vivek_Loves_Array_Game.java

Usage

Each lecture folder contains Java code examples and problem solutions. PDFs may include lecture notes or problem statements.

Feel free to explore and use this repository for learning and reference.

About

This repository contains my DSA learning journey, with lecture-wise Java implementations of important data structures and algorithms. It serves as a structured reference for practice, revision, and interview preparation.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages