{"id":21320825,"url":"https://github.com/rajatgupta24/java-codes","last_synced_at":"2025-03-15T22:41:51.690Z","repository":{"id":110134622,"uuid":"345892253","full_name":"rajatgupta24/java-codes","owner":"rajatgupta24","description":null,"archived":false,"fork":false,"pushed_at":"2022-01-06T08:36:53.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T11:43:02.375Z","etag":null,"topics":["algorithm","cpp","data-structures","golang","java","leetcode"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatgupta24.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-09T05:21:07.000Z","updated_at":"2022-01-06T08:47:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d1db502-15ba-4255-b729-32b5b339acff","html_url":"https://github.com/rajatgupta24/java-codes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatgupta24%2Fjava-codes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatgupta24%2Fjava-codes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatgupta24%2Fjava-codes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatgupta24%2Fjava-codes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatgupta24","download_url":"https://codeload.github.com/rajatgupta24/java-codes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801611,"owners_count":20350106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","cpp","data-structures","golang","java","leetcode"],"created_at":"2024-11-21T19:54:52.303Z","updated_at":"2025-03-15T22:41:51.656Z","avatar_url":"https://github.com/rajatgupta24.png","language":"Java","readme":"# Complete Java + DSA Bootcamp Syllabus\n\n## Lectures\n- [Complete Git \u0026 GitHub Course](https://youtu.be/apGV9Kg7ics)\n- [Introduction to Programming](https://youtu.be/wn49bJOYAZM)\n    - [Types of languages](https://youtu.be/wn49bJOYAZM?t=171)\n    - [Memory management](https://youtu.be/wn49bJOYAZM?t=1488)\n- [Flow of the program](https://youtu.be/lhELGQAV4gg)\n    - [Flowcharts](https://youtu.be/lhELGQAV4gg)\n    - [Pseudocode](https://youtu.be/lhELGQAV4gg?t=715)\n- [Introduction to Java](https://youtu.be/4EP8YzcN0hQ)\n    - [Introduction](https://youtu.be/4EP8YzcN0hQ)\n    - [How it works](https://youtu.be/4EP8YzcN0hQ?t=93)\n    - [Setup Installation](https://youtu.be/4EP8YzcN0hQ?t=1486)\n    - [Input and Output in Java](https://youtu.be/TAtrPoaJ7gc)\n    - [Conditionals \u0026 Loops in Java](https://youtu.be/ldYLYRNaucM?t=88)\n        - [if-else](https://youtu.be/ldYLYRNaucM?t=88)\n        - [loops](https://youtu.be/ldYLYRNaucM?t=440)\n        - [Switch statements](https://youtu.be/mA23x39DjbI)\n    - [Data-types](https://youtu.be/TAtrPoaJ7gc?t=2800)\n    - [Coding best practices](https://youtu.be/waGfV-IoOt8)\n- [Functions](https://youtu.be/vvanI8NRlSI)\n    - [Introduction](https://youtu.be/vvanI8NRlSI)\n    - [Scoping in Java](https://youtu.be/vvanI8NRlSI?t=2801)\n    - [Shadowing](https://youtu.be/vvanI8NRlSI?t=3584)\n    - [Variable Length Arguments](https://youtu.be/vvanI8NRlSI?t=4013)\n    - [Overloading](https://youtu.be/vvanI8NRlSI?t=4327)\n- [Arrays](https://youtu.be/n60Dn0UsbEk)\n    - [Introduction](https://youtu.be/n60Dn0UsbEk)\n    - [Memory management](https://youtu.be/n60Dn0UsbEk?t=632)\n    - [Input and Output](https://youtu.be/n60Dn0UsbEk?t=1675)\n    - [ArrayList Introduction](https://youtu.be/n60Dn0UsbEk?t=4868)\n    - Searching\n        - [Linear Search](https://youtu.be/_HRA37X8N_Q)\n        - [Binary Search](https://youtu.be/f6UU7V3szVw)\n        - [Modified Binary Search](https://youtu.be/f6UU7V3szVw?t=2508)\n        - Binary Search on 2D Arrays\n    - Sorting\n        - [Insertion Sort](https://youtu.be/By_5-RRqVeE)\n        - [Selection Sort](https://youtu.be/Nd4SCCIHFWk)\n        - [Bubble Sort](https://youtu.be/F5MZyqRp_IM)\n        - Count Sort\n        - Radix Sort\n        - [Cyclic Sort](https://youtu.be/JfinxytTYFQ)\n    - Sliding window\n    - Two Pointer\n    - Subarray Questions\n- Pattern questions\n- Strings\n    - Introduction\n    - How Strings work\n    - Comparison of methods\n    - Operations in Strings\n    - StringBuilder in java\n- Maths for DSA\n    - Introduction\n    - Complete Bitwise Operators\n    - Prime numbers\n    - HCF / LCM\n    - Sieve of Eratosthenes\n    - Newton's Square Root Method\n    - Number Theory\n    - Euclidean algorithm\n    - Advanced Concepts for CP (later in the course)\n        - Bitwise + DP\n        - Extended Euclidean algorithm\n        - Modulo Properties\n        - Modulo Multiplicative Inverse\n        - Linear Diophantine Equations\n        - Fermat’s Theorem\n        - Wilson's Theorem\n        - Lucas Theorem\n        - Chinese Remainder Theorem\n- Recursion\n    - Introduction\n    - Why recursion?\n    - Flow of recursive programs - stacks\n    - Convert recursion to iteration\n    - Tree building of function calls\n    - Tail recursion\n    - Sorting:\n        - Merge Sort\n        - Quick Sort\n    - Backtracking\n        - Sudoku Solver\n        - N-Queens\n        - N-Knights\n        - Maze problems\n    - Recursion String Problems\n    - Recursion Array Problems\n    - Recursion Pattern Problems\n    - Subset Questions\n- Space and Time Complexity Analysis\n    - Introduction\n    - Comparisons of various cases\n    - Solving Linear Recurrence Relations\n    - Solving Divide and Conquer Recurrence Relations\n    - Big-O, Big-Omega, Big-Theta Notations\n    - Get equation of any relation easily - best and easiest approach\n    - Complexity discussion of all the problems we do\n    - Space Complexity \n    - Memory Allocation of various languages\n    - NP-Completeness and Hardness\n- Object Oriented Programming\n    - Introduction\n    - Classes \u0026 its instances\n    - this keyword in Java\n    - Properties\n        - Inheritance\n        - Abstraction\n        - Polymorphism\n        - Encapsulation\n    - Overloading \u0026 Overriding\n    - Static \u0026 Non-Static\n    - Access Control\n    - Interfaces\n    - Abstract Classes\n    - Singleton Class\n    - final, finalize, finally\n    - Object Class\n    - Generics\n    - Exception Handling\n    - Collections Framework\n    - Lambda Expression\n    - Enums\n    - Fast IO\n\t- File handling\n- Greedy Algorithms\n- Stacks \u0026 Queues\n    - Introduction\n    - Interview problems\n    - Push efficient\n    - Pop efficient\n    - Queue using Stack and Vice versa\n    - Circular Queue\n- Linked List\n    - Introduction\n    - Fast and slow pointer\n    - Cycle Detection\n    - Single and Doubly LinkedList\n    - Reversal of LinkedList\n- Dynamic Programming\n    - Introduction\n    - Recursion + Recursion DP + Iteration + Iteration Space Optimized\n    - Complexity Analysis\n    - 0/1 Knapsack\n    - Subset Questions\n    - Unbounded Knapsack\n    - Subsequence questions\n    - String DP\n- Trees\n    - Introduction\n    - Binary Trees\n    - Binary Search Trees\n    - DFS\n    - BFS\n    - AVL Trees\n    - Segment Tree\n    - Fenwick Tree / Binary Indexed Tree\n- Square Root Decomposition\n- Heaps\n    - Introduction\n    - Theory\n    - Priority Queue\n    - Heapsort\n    - Two Heaps Method\n    - k-way merge\n    - Top k elements\n    - Interval problems\n- HashMap\n    - Introduction\n    - Theory - how it works\n    - Comparisons of various forms\n    - Limitations and how to solve\n    - Map using LinkedList\n    - Map using Hash\n    - Chaining\n    - Probing\n    - Huffman-Encoder\n- Tries\n- Graphs\n    - Introduction\n    - BFS\n    - DFS\n    - Working with graph components\n    - Minimum Spanning Trees\n    - Kruskal Algorithm\n    - Prims Algorithm\n    - Dijkstra’s shortest path algorithm\n    - Topological Sort\n    - Bellman ford\n    - A* pathfinding Algorithm\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatgupta24%2Fjava-codes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatgupta24%2Fjava-codes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatgupta24%2Fjava-codes/lists"}