Skip to content

Commit cd4a668

Browse files
Merge branch 'TheAlgorithms:master' into main
2 parents 688ca65 + 0a2c7f2 commit cd4a668

29 files changed

+602
-599
lines changed

DIRECTORY.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -626,8 +626,6 @@
626626
- 📄 [SkylineProblem](src/main/java/com/thealgorithms/others/SkylineProblem.java)
627627
- 📄 [TwoPointers](src/main/java/com/thealgorithms/others/TwoPointers.java)
628628
- 📄 [Verhoeff](src/main/java/com/thealgorithms/others/Verhoeff.java)
629-
- 📁 **cn**
630-
- 📄 [HammingDistance](src/main/java/com/thealgorithms/others/cn/HammingDistance.java)
631629
- 📁 **physics**
632630
- 📄 [CoulombsLaw](src/main/java/com/thealgorithms/physics/CoulombsLaw.java)
633631
- 📄 [DampedOscillator](src/main/java/com/thealgorithms/physics/DampedOscillator.java)
@@ -701,7 +699,6 @@
701699
- 📄 [LowerBound](src/main/java/com/thealgorithms/searches/LowerBound.java)
702700
- 📄 [MonteCarloTreeSearch](src/main/java/com/thealgorithms/searches/MonteCarloTreeSearch.java)
703701
- 📄 [OrderAgnosticBinarySearch](src/main/java/com/thealgorithms/searches/OrderAgnosticBinarySearch.java)
704-
- 📄 [PerfectBinarySearch](src/main/java/com/thealgorithms/searches/PerfectBinarySearch.java)
705702
- 📄 [QuickSelect](src/main/java/com/thealgorithms/searches/QuickSelect.java)
706703
- 📄 [RabinKarpAlgorithm](src/main/java/com/thealgorithms/searches/RabinKarpAlgorithm.java)
707704
- 📄 [RandomSearch](src/main/java/com/thealgorithms/searches/RandomSearch.java)
@@ -710,7 +707,6 @@
710707
- 📄 [SaddlebackSearch](src/main/java/com/thealgorithms/searches/SaddlebackSearch.java)
711708
- 📄 [SearchInARowAndColWiseSortedMatrix](src/main/java/com/thealgorithms/searches/SearchInARowAndColWiseSortedMatrix.java)
712709
- 📄 [SentinelLinearSearch](src/main/java/com/thealgorithms/searches/SentinelLinearSearch.java)
713-
- 📄 [SortOrderAgnosticBinarySearch](src/main/java/com/thealgorithms/searches/SortOrderAgnosticBinarySearch.java)
714710
- 📄 [SquareRootBinarySearch](src/main/java/com/thealgorithms/searches/SquareRootBinarySearch.java)
715711
- 📄 [TernarySearch](src/main/java/com/thealgorithms/searches/TernarySearch.java)
716712
- 📄 [UnionFind](src/main/java/com/thealgorithms/searches/UnionFind.java)
@@ -817,7 +813,6 @@
817813
- 📄 [LetterCombinationsOfPhoneNumber](src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java)
818814
- 📄 [LongestCommonPrefix](src/main/java/com/thealgorithms/strings/LongestCommonPrefix.java)
819815
- 📄 [LongestNonRepetitiveSubstring](src/main/java/com/thealgorithms/strings/LongestNonRepetitiveSubstring.java)
820-
- 📄 [LongestPalindromicSubstring](src/main/java/com/thealgorithms/strings/LongestPalindromicSubstring.java)
821816
- 📄 [Lower](src/main/java/com/thealgorithms/strings/Lower.java)
822817
- 📄 [Manacher](src/main/java/com/thealgorithms/strings/Manacher.java)
823818
- 📄 [MyAtoi](src/main/java/com/thealgorithms/strings/MyAtoi.java)
@@ -834,7 +829,6 @@
834829
- 📄 [StringMatchFiniteAutomata](src/main/java/com/thealgorithms/strings/StringMatchFiniteAutomata.java)
835830
- 📄 [SuffixArray](src/main/java/com/thealgorithms/strings/SuffixArray.java)
836831
- 📄 [Upper](src/main/java/com/thealgorithms/strings/Upper.java)
837-
- 📄 [ValidParentheses](src/main/java/com/thealgorithms/strings/ValidParentheses.java)
838832
- 📄 [WordLadder](src/main/java/com/thealgorithms/strings/WordLadder.java)
839833
- 📄 [ZAlgorithm](src/main/java/com/thealgorithms/strings/ZAlgorithm.java)
840834
- 📁 **zigZagPattern**
@@ -1395,7 +1389,6 @@
13951389
- 📄 [MaximumSumOfDistinctSubarraysWithLengthKTest](src/test/java/com/thealgorithms/others/MaximumSumOfDistinctSubarraysWithLengthKTest.java)
13961390
- 📄 [MiniMaxAlgorithmTest](src/test/java/com/thealgorithms/others/MiniMaxAlgorithmTest.java)
13971391
- 📄 [MosAlgorithmTest](src/test/java/com/thealgorithms/others/MosAlgorithmTest.java)
1398-
- 📄 [NewManShanksPrimeTest](src/test/java/com/thealgorithms/others/NewManShanksPrimeTest.java)
13991392
- 📄 [NextFitTest](src/test/java/com/thealgorithms/others/NextFitTest.java)
14001393
- 📄 [PageRankTest](src/test/java/com/thealgorithms/others/PageRankTest.java)
14011394
- 📄 [PasswordGenTest](src/test/java/com/thealgorithms/others/PasswordGenTest.java)
@@ -1404,8 +1397,6 @@
14041397
- 📄 [SkylineProblemTest](src/test/java/com/thealgorithms/others/SkylineProblemTest.java)
14051398
- 📄 [TwoPointersTest](src/test/java/com/thealgorithms/others/TwoPointersTest.java)
14061399
- 📄 [WorstFitCPUTest](src/test/java/com/thealgorithms/others/WorstFitCPUTest.java)
1407-
- 📁 **cn**
1408-
- 📄 [HammingDistanceTest](src/test/java/com/thealgorithms/others/cn/HammingDistanceTest.java)
14091400
- 📁 **physics**
14101401
- 📄 [CoulombsLawTest](src/test/java/com/thealgorithms/physics/CoulombsLawTest.java)
14111402
- 📄 [DampedOscillatorTest](src/test/java/com/thealgorithms/physics/DampedOscillatorTest.java)
@@ -1479,7 +1470,6 @@
14791470
- 📄 [LowerBoundTest](src/test/java/com/thealgorithms/searches/LowerBoundTest.java)
14801471
- 📄 [MonteCarloTreeSearchTest](src/test/java/com/thealgorithms/searches/MonteCarloTreeSearchTest.java)
14811472
- 📄 [OrderAgnosticBinarySearchTest](src/test/java/com/thealgorithms/searches/OrderAgnosticBinarySearchTest.java)
1482-
- 📄 [PerfectBinarySearchTest](src/test/java/com/thealgorithms/searches/PerfectBinarySearchTest.java)
14831473
- 📄 [QuickSelectTest](src/test/java/com/thealgorithms/searches/QuickSelectTest.java)
14841474
- 📄 [RabinKarpAlgorithmTest](src/test/java/com/thealgorithms/searches/RabinKarpAlgorithmTest.java)
14851475
- 📄 [RandomSearchTest](src/test/java/com/thealgorithms/searches/RandomSearchTest.java)
@@ -1488,7 +1478,6 @@
14881478
- 📄 [SaddlebackSearchTest](src/test/java/com/thealgorithms/searches/SaddlebackSearchTest.java)
14891479
- 📄 [SearchInARowAndColWiseSortedMatrixTest](src/test/java/com/thealgorithms/searches/SearchInARowAndColWiseSortedMatrixTest.java)
14901480
- 📄 [SentinelLinearSearchTest](src/test/java/com/thealgorithms/searches/SentinelLinearSearchTest.java)
1491-
- 📄 [SortOrderAgnosticBinarySearchTest](src/test/java/com/thealgorithms/searches/SortOrderAgnosticBinarySearchTest.java)
14921481
- 📄 [SquareRootBinarySearchTest](src/test/java/com/thealgorithms/searches/SquareRootBinarySearchTest.java)
14931482
- 📄 [TernarySearchTest](src/test/java/com/thealgorithms/searches/TernarySearchTest.java)
14941483
- 📄 [TestSearchInARowAndColWiseSortedMatrix](src/test/java/com/thealgorithms/searches/TestSearchInARowAndColWiseSortedMatrix.java)
@@ -1593,7 +1582,6 @@
15931582
- 📄 [LetterCombinationsOfPhoneNumberTest](src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java)
15941583
- 📄 [LongestCommonPrefixTest](src/test/java/com/thealgorithms/strings/LongestCommonPrefixTest.java)
15951584
- 📄 [LongestNonRepetitiveSubstringTest](src/test/java/com/thealgorithms/strings/LongestNonRepetitiveSubstringTest.java)
1596-
- 📄 [LongestPalindromicSubstringTest](src/test/java/com/thealgorithms/strings/LongestPalindromicSubstringTest.java)
15971585
- 📄 [LowerTest](src/test/java/com/thealgorithms/strings/LowerTest.java)
15981586
- 📄 [ManacherTest](src/test/java/com/thealgorithms/strings/ManacherTest.java)
15991587
- 📄 [MyAtoiTest](src/test/java/com/thealgorithms/strings/MyAtoiTest.java)
@@ -1609,7 +1597,6 @@
16091597
- 📄 [StringMatchFiniteAutomataTest](src/test/java/com/thealgorithms/strings/StringMatchFiniteAutomataTest.java)
16101598
- 📄 [SuffixArrayTest](src/test/java/com/thealgorithms/strings/SuffixArrayTest.java)
16111599
- 📄 [UpperTest](src/test/java/com/thealgorithms/strings/UpperTest.java)
1612-
- 📄 [ValidParenthesesTest](src/test/java/com/thealgorithms/strings/ValidParenthesesTest.java)
16131600
- 📄 [WordLadderTest](src/test/java/com/thealgorithms/strings/WordLadderTest.java)
16141601
- 📄 [ZAlgorithmTest](src/test/java/com/thealgorithms/strings/ZAlgorithmTest.java)
16151602
- 📁 **zigZagPattern**

pmd-exclude.properties

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,11 @@ com.thealgorithms.maths.Gaussian=UselessParentheses
5353
com.thealgorithms.maths.GcdSolutionWrapper=UselessParentheses
5454
com.thealgorithms.maths.HeronsFormula=UselessParentheses
5555
com.thealgorithms.maths.JugglerSequence=UselessMainMethod
56-
com.thealgorithms.maths.KaprekarNumbers=UselessParentheses
5756
com.thealgorithms.maths.KeithNumber=UselessMainMethod,UselessParentheses
58-
com.thealgorithms.maths.LeonardoNumber=UselessParentheses
5957
com.thealgorithms.maths.LinearDiophantineEquationsSolver=UselessMainMethod,UselessParentheses
6058
com.thealgorithms.maths.MagicSquare=UselessMainMethod
6159
com.thealgorithms.maths.PiNilakantha=UselessMainMethod
6260
com.thealgorithms.maths.Prime.PrimeCheck=UselessMainMethod
63-
com.thealgorithms.maths.PythagoreanTriple=UselessMainMethod
6461
com.thealgorithms.maths.RomanNumeralUtil=UselessParentheses
6562
com.thealgorithms.maths.SecondMinMax=UselessParentheses
6663
com.thealgorithms.maths.SecondMinMaxTest=UnnecessaryFullyQualifiedName
@@ -71,19 +68,16 @@ com.thealgorithms.maths.TrinomialTriangle=UselessMainMethod,UselessParentheses
7168
com.thealgorithms.maths.VectorCrossProduct=UselessMainMethod
7269
com.thealgorithms.maths.Volume=UselessParentheses
7370
com.thealgorithms.matrix.RotateMatrixBy90Degrees=UselessMainMethod
74-
com.thealgorithms.misc.Sparsity=UselessParentheses
7571
com.thealgorithms.others.BankersAlgorithm=UselessMainMethod
7672
com.thealgorithms.others.BrianKernighanAlgorithm=UselessMainMethod
7773
com.thealgorithms.others.CRC16=UselessMainMethod,UselessParentheses
7874
com.thealgorithms.others.CRC32=UselessMainMethod
7975
com.thealgorithms.others.Damm=UnnecessaryFullyQualifiedName,UselessMainMethod
8076
com.thealgorithms.others.Dijkstra=UselessMainMethod
8177
com.thealgorithms.others.GaussLegendre=UselessMainMethod
82-
com.thealgorithms.others.HappyNumbersSeq=UselessMainMethod
8378
com.thealgorithms.others.Huffman=UselessMainMethod
8479
com.thealgorithms.others.InsertDeleteInArray=UselessMainMethod
8580
com.thealgorithms.others.KochSnowflake=UselessMainMethod
86-
com.thealgorithms.others.Krishnamurthy=UselessMainMethod
8781
com.thealgorithms.others.LinearCongruentialGenerator=UselessMainMethod
8882
com.thealgorithms.others.Luhn=UnnecessaryFullyQualifiedName,UselessMainMethod
8983
com.thealgorithms.others.Mandelbrot=UselessMainMethod,UselessParentheses
@@ -94,7 +88,6 @@ com.thealgorithms.others.PerlinNoise=UselessMainMethod,UselessParentheses
9488
com.thealgorithms.others.QueueUsingTwoStacks=UselessParentheses
9589
com.thealgorithms.others.Trieac=UselessMainMethod,UselessParentheses
9690
com.thealgorithms.others.Verhoeff=UnnecessaryFullyQualifiedName,UselessMainMethod
97-
com.thealgorithms.puzzlesandgames.Sudoku=UselessMainMethod
9891
com.thealgorithms.recursion.DiceThrower=UselessMainMethod
9992
com.thealgorithms.searches.HowManyTimesRotated=UselessMainMethod
10093
com.thealgorithms.searches.InterpolationSearch=UselessParentheses
@@ -108,15 +101,11 @@ com.thealgorithms.sorts.MergeSortNoExtraSpace=UselessParentheses
108101
com.thealgorithms.sorts.RadixSort=UselessParentheses
109102
com.thealgorithms.sorts.TreeSort=UselessMainMethod
110103
com.thealgorithms.sorts.WiggleSort=UselessParentheses
111-
com.thealgorithms.stacks.LargestRectangle=UselessMainMethod
112104
com.thealgorithms.stacks.MaximumMinimumWindow=UselessMainMethod
113105
com.thealgorithms.stacks.PostfixToInfix=UselessParentheses
114-
com.thealgorithms.strings.Alphabetical=UselessMainMethod
115106
com.thealgorithms.strings.HorspoolSearch=UnnecessaryFullyQualifiedName,UselessParentheses
116-
com.thealgorithms.strings.KMP=UselessMainMethod
117107
com.thealgorithms.strings.Lower=UselessMainMethod
118108
com.thealgorithms.strings.Palindrome=UselessParentheses
119109
com.thealgorithms.strings.Pangram=UselessMainMethod
120-
com.thealgorithms.strings.RabinKarp=UselessMainMethod
121110
com.thealgorithms.strings.Rotation=UselessMainMethod
122111
com.thealgorithms.strings.Upper=UselessMainMethod

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<dependency>
2121
<groupId>org.junit</groupId>
2222
<artifactId>junit-bom</artifactId>
23-
<version>6.0.2</version>
23+
<version>6.0.3</version>
2424
<type>pom</type>
2525
<scope>import</scope>
2626
</dependency>
@@ -69,7 +69,7 @@
6969
<plugin>
7070
<groupId>org.apache.maven.plugins</groupId>
7171
<artifactId>maven-compiler-plugin</artifactId>
72-
<version>3.14.1</version>
72+
<version>3.15.0</version>
7373
<configuration>
7474
<release>21</release>
7575
<compilerArgs>
@@ -112,7 +112,7 @@
112112
<dependency>
113113
<groupId>com.puppycrawl.tools</groupId>
114114
<artifactId>checkstyle</artifactId>
115-
<version>13.1.0</version>
115+
<version>13.2.0</version>
116116
</dependency>
117117
</dependencies>
118118
</plugin>

spotbugs-exclude.xml

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,12 @@
88
<Match>
99
<Bug pattern="DMI_RANDOM_USED_ONLY_ONCE" />
1010
</Match>
11-
<Match>
12-
<Bug pattern="SF_SWITCH_NO_DEFAULT" />
13-
</Match>
1411
<Match>
1512
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" />
1613
</Match>
1714
<Match>
1815
<Bug pattern="DM_NEXTINT_VIA_NEXTDOUBLE" />
1916
</Match>
20-
<Match>
21-
<Bug pattern="SIC_INNER_SHOULD_BE_STATIC" />
22-
</Match>
2317
<Match>
2418
<Bug pattern="EI_EXPOSE_REP" />
2519
</Match>
@@ -32,15 +26,9 @@
3226
<Match>
3327
<Bug pattern="PA_PUBLIC_PRIMITIVE_ATTRIBUTE" />
3428
</Match>
35-
<Match>
36-
<Bug pattern="MS_PKGPROTECT" />
37-
</Match>
3829
<Match>
3930
<Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
4031
</Match>
41-
<Match>
42-
<Bug pattern="INT_BAD_REM_BY_1" />
43-
</Match>
4432
<Match>
4533
<Bug pattern="FE_FLOATING_POINT_EQUALITY" />
4634
</Match>
@@ -50,15 +38,9 @@
5038
<Match>
5139
<Bug pattern="URF_UNREAD_FIELD" />
5240
</Match>
53-
<Match>
54-
<Bug pattern="RC_REF_COMPARISON" />
55-
</Match>
5641
<Match>
5742
<Bug pattern="MS_EXPOSE_REP" />
5843
</Match>
59-
<Match>
60-
<Bug pattern="DM_BOXED_PRIMITIVE_FOR_PARSING" />
61-
</Match>
6244
<Match>
6345
<Bug pattern="UWF_UNWRITTEN_FIELD" />
6446
</Match>
@@ -71,9 +53,6 @@
7153
<Match>
7254
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
7355
</Match>
74-
<Match>
75-
<Bug pattern="NP_IMMEDIATE_DEREFERENCE_OF_READLINE" />
76-
</Match>
7756
<Match>
7857
<Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" />
7958
</Match>
@@ -83,9 +62,6 @@
8362
<Match>
8463
<Bug pattern="AT_STALE_THREAD_WRITE_OF_PRIMITIVE" />
8564
</Match>
86-
<Match>
87-
<Bug pattern="SF_SWITCH_FALLTHROUGH" />
88-
</Match>
8965
<!-- fb-contrib -->
9066
<Match>
9167
<Bug pattern="LSC_LITERAL_STRING_COMPARISON" />
@@ -114,12 +90,6 @@
11490
<Match>
11591
<Bug pattern="USBR_UNNECESSARY_STORE_BEFORE_RETURN" />
11692
</Match>
117-
<Match>
118-
<Bug pattern="BL_BURYING_LOGIC" />
119-
</Match>
120-
<Match>
121-
<Bug pattern="UTWR_USE_TRY_WITH_RESOURCES" />
122-
</Match>
12393
<Match>
12494
<Bug pattern="MUI_CONTAINSKEY_BEFORE_GET" />
12595
</Match>
@@ -150,9 +120,6 @@
150120
<Match>
151121
<Bug pattern="LSYC_LOCAL_SYNCHRONIZED_COLLECTION" />
152122
</Match>
153-
<Match>
154-
<Bug pattern="IOI_USE_OF_FILE_STREAM_CONSTRUCTORS" />
155-
</Match>
156123
<Match>
157124
<Bug pattern="UP_UNUSED_PARAMETER" />
158125
</Match>
@@ -189,24 +156,15 @@
189156
<Match>
190157
<Bug pattern="STT_STRING_PARSING_A_FIELD" />
191158
</Match>
192-
<Match>
193-
<Bug pattern="IMC_IMMATURE_CLASS_BAD_SERIALVERSIONUID" />
194-
</Match>
195159
<Match>
196160
<Bug pattern="DRE_DECLARED_RUNTIME_EXCEPTION" />
197161
</Match>
198-
<Match>
199-
<Bug pattern="BAS_BLOATED_ASSIGNMENT_SCOPE" />
200-
</Match>
201162
<Match>
202163
<Bug pattern="SPP_FIELD_COULD_BE_STATIC" />
203164
</Match>
204165
<Match>
205166
<Bug pattern="ITC_INHERITANCE_TYPE_CHECKING" />
206167
</Match>
207-
<Match>
208-
<Bug pattern="FII_USE_ARRAYS_STREAM" />
209-
</Match>
210168
<Match>
211169
<Bug pattern="UTAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_EQUALS" />
212170
</Match>

src/main/java/com/thealgorithms/backtracking/ArrayCombination.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ private ArrayCombination() {
2020
* @throws IllegalArgumentException if n or k are negative, or if k is greater than n.
2121
*/
2222
public static List<List<Integer>> combination(int n, int k) {
23-
if (n < 0 || k < 0 || k > n) {
24-
throw new IllegalArgumentException("Invalid input: n must be non-negative, k must be non-negative and less than or equal to n.");
23+
if (k < 0 || k > n) {
24+
throw new IllegalArgumentException("Invalid input: 0 ≤ k ≤ n is required.");
2525
}
2626

2727
List<List<Integer>> combinations = new ArrayList<>();
@@ -48,7 +48,7 @@ private static void combine(List<List<Integer>> combinations, List<Integer> curr
4848
for (int i = start; i < n; i++) {
4949
current.add(i);
5050
combine(combinations, current, i + 1, n, k);
51-
current.remove(current.size() - 1); // Backtrack
51+
current.removeLast(); // Backtrack
5252
}
5353
}
5454
}

0 commit comments

Comments
 (0)