Skip to content

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.

Notifications You must be signed in to change notification settings

Jain131102/STS3007---Advanced-Competitive-Coding---I

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STS3007: Advanced Competitive Coding - I

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.


📂 Repository Structure

The repository includes the following files:

📄 Java Programs

Java implementations of various algorithms and problem-solving techniques:

  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.

📑 Study Materials


📋 Topics Covered

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)

🖥 How to Run

Follow these steps to run the programs:

Prerequisites

Steps

  1. Clone this repository:
    git clone https://github.com/Jain131102/STS3007---Advanced-Competitive-Coding---I.git
  2. Navigate to the repository:
    cd STS3007---Advanced-Competitive-Coding---I
  3. Compile and run any Java program:
     javac ProgramName.java  
     java ProgramName  

🤝 Contributing

Contributions are welcome! If you'd like to add solutions, fix bugs, or improve documentation:

  1. Fork the repository.
  2. Create a new branch:
git checkout -b feature-branch-name  
  1. Commit your changes:
git commit -m "Add your message here"  
  1. Push to your branch:
git push origin feature-branch-name  

5.Open a pull request.


🌟 Acknowledgments

Thanks to all contributors and learners for supporting this project!
Happy Coding! 🚀

🛡 License

This project is open-source and available under the MIT License.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages