Welcome to the STS3007: Advanced Competitive Coding - I repository!
This repository contains a variety of Java implementations of advanced algorithms, problem-solving techniques, and theory materials. These resources are designed to help students and developers enhance their competitive programming skills.
The repository includes the following files:
| No. | File Name | Description |
|---|---|---|
| 1 | ActivitySelection.java | Greedy algorithm to select the maximum number of non-overlapping activities. |
| 2 | Binary_Palindrome.java | Checks if a binary number is a palindrome. |
| 3 | BlockSwap.java | Efficient array rotation using block swap. |
| 4 | Booth_Multiplication.java | Booth's algorithm for binary multiplication. |
| 5 | CRT.java | Solves systems of congruences using the Chinese Remainder Theorem. |
| 6 | Combinations.java | Generates combinations of elements from a set. |
| 7 | Euclid.java | Calculates the GCD of two numbers using Euclid's algorithm. |
| 8 | EulerPhi.java | Computes Euler's Totient Function for a given number. |
| 9 | HourGlass.java | Finds the maximum hourglass sum in a 2D array. |
| 10 | Incremental_Sieve.java | Generates primes using an incremental sieve approach. |
| 11 | Josephus.java | Solves the Josephus problem recursively and iteratively. |
| 12 | Karatsuba.java | Implements the Karatsuba algorithm for fast multiplication. |
| 13 | Leaders.java | Finds all leaders in an array. |
| 14 | LongestPalindromicSubstring.java | Finds the longest palindromic substring in a string. |
| 15 | Majority.java | Identifies the majority element in an array. |
| 16 | Maneuvering.java | A problem-solving approach involving array manipulations. |
| 17 | Max1.java | Finds the maximum consecutive 1s in a binary array. |
| 18 | MaxE.java | Finds the maximum equilibrium sum in an array. |
| 19 | MaxP.java | Finds the maximum product subarray. |
| 20 | MazeSolver.java | Solves a maze using backtracking. |
| 21 | MoveHyphens.java | Moves all hyphens to the end of a string. |
| 22 | NQueens.java | Backtracking solution for the N-Queens problem. |
| 23 | Palindrome1.java | Finds lexicographically first palindromic string. |
| 24 | Permutations.java | Generates all sorted & unique permutations of a given array. |
| 25 | QuickSort.java | Implements the quicksort algorithm. |
| 26 | Segmented_Sieve.java | Finds primes in a given range using the segmented sieve method. |
| 27 | SelectionSort.java | Implements the selection sort algorithm. |
| 28 | Simple_Sieve.java | Generates primes using the simple sieve method. |
| 29 | Strobogrammatic1.java | Verifies if a number looks the same upside down. |
| 30 | Strobogrammatic2.java | Generates all strobogrammatic numbers within a range. |
| 31 | SwapNibbles.java | Swaps nibbles in a byte. |
| 32 | WeightedSubstring.java | Finds substrings with given weight constraints. |
- MCQs (STS3007 - Advanced Competitive Coding - I).pdf: Multiple-choice questions for self-assessment.
- MCQs PPT (STS3007 - Advanced Competitive Coding - I).pdf: Presentation slides for MCQs.
- Theory 1 (STS3007 - Advanced Competitive Coding - I).pdf: Detailed theory notes on various algorithms and techniques.
- Theory 2 (STS3007 - Advanced Competitive Coding - I).pdf: Additional notes covering advanced topics.
- YouTube Lectures
This repository covers a wide range of topics, including:
- Sorting and Searching Algorithms (e.g., QuickSort, SelectionSort)
- Mathematical Algorithms (e.g., Euclid's Algorithm, Sieve of Eratosthenes, CRT)
- String Manipulation (e.g., Longest Palindromic Substring, Binary Palindrome)
- Backtracking (e.g., N-Queens, Maze Solver, Permutations)
- Greedy Algorithms (e.g., Activity Selection, Leaders in Array)
- Advanced Multiplication Techniques (e.g., Karatsuba, Booth's Algorithm)
- Problem-Solving Strategies (e.g., Hourglass Sum, Josephus Problem, Max Product Subarray)
Follow these steps to run the programs:
- Ensure you have Java installed. Download Java.
- Clone this repository:
git clone https://github.com/Jain131102/STS3007---Advanced-Competitive-Coding---I.git
- Navigate to the repository:
cd STS3007---Advanced-Competitive-Coding---I - Compile and run any Java program:
javac ProgramName.java java ProgramName
Contributions are welcome! If you'd like to add solutions, fix bugs, or improve documentation:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch-name - Commit your changes:
git commit -m "Add your message here" - Push to your branch:
git push origin feature-branch-name 5.Open a pull request.
This project is open-source and available under the MIT License.