This module provides a reusable Java library for analyzing numeric sequences (e.g., stock price changes) using the Subarray Sum family of algorithms.
-
Interface
ISubarrayAnalyzer
defines the strategy for subarray analysis. -
Abstract class
AbstractSubarrayAnalyzer
implements shared logic. -
Two concrete algorithms:
KadaneAnalyzer
: finds subarray with maximum sum (profit).PrefixSumAnalyzer
: finds the longest subarray with a given target sum (e.g., 0 for zero return).
-
Output model:
SubarrayResult
(start index, end index, total sum).
- Unit tests (JUnit 4) verifying correctness of each algorithm under edge cases and realistic input.
src/
βββ AlgorithmModule/
β βββ AbstractSubarrayAnalyzer.java
β βββ ISubarrayAnalyzer.java
β βββ KadaneAnalyzer.java
β βββ PrefixSumAnalyzer.java
β βββ SubarrayResult.java
βββ test/
βββ ISubarrayAnalyzerTest.java
Β© Developed as part of Java Advanced Course β Final Project