From a006b6ed3a53d2274435b63af0642f0c4727999b Mon Sep 17 00:00:00 2001 From: Artemis Git Integration Date: Fri, 7 Nov 2025 18:38:09 +0000 Subject: [PATCH] refactor: rename sumSquare to sumTriangle and sync with main branch --- app/src/main/java/control/Double.java | 62 ++++++++++++--------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/control/Double.java b/app/src/main/java/control/Double.java index cc5cf15..8fa37de 100644 --- a/app/src/main/java/control/Double.java +++ b/app/src/main/java/control/Double.java @@ -1,5 +1,8 @@ package control; +import java.util.HashMap; +import java.util.Map; + public class Double { /** * Sums all values squared from 0 to n @@ -10,11 +13,7 @@ public class Double { public static int sumSquare(int n) { int sum = 0; for (int i = 0; i < n; i++) { - for (int j = 0; j < n; j++) { - if (i == j) { - sum = sum + i * j; - } - } + sum += i * i; } return sum; } @@ -26,13 +25,13 @@ public static int sumSquare(int n) { * @return The sum of the first n triangular numbers. */ public static int sumTriangle(int n) { - int sum = 0; - for (int i = 0; i < n + 1; i++) { - for (int j = 0; j < i; j++) { - sum = sum + j; - } + int totalSum = 0; + int currentTriangularSum = 0; + for (int i = 0; i <= n; i++) { + totalSum += currentTriangularSum; + currentTriangularSum += i; } - return sum; + return totalSum; } /** @@ -44,19 +43,18 @@ public static int sumTriangle(int n) { * @return The number of pairs in the array. */ public static int countPairs(int[] arr) { - int count = 0; - for (int i = 0; i < arr.length; i++) { - int nDuplicates = 0; - for (int j = 0; j < arr.length; j++) { - if (arr[i] == arr[j]) { - nDuplicates++; - } - } - if (nDuplicates == 2) { - count++; + Map counts = new HashMap<>(); + for (int num : arr) { + counts.put(num, counts.getOrDefault(num, 0) + 1); + } + + int pairCount = 0; + for (int count : counts.values()) { + if (count == 2) { + pairCount++; } } - return count / 2; + return pairCount; } /** @@ -69,11 +67,10 @@ public static int countPairs(int[] arr) { */ public static int countDuplicates(int[] arr0, int[] arr1) { int count = 0; - for (int i = 0; i < arr0.length; i++) { - for (int j = 0; j < arr1.length; j++) { - if (i == j && arr0[i] == arr1[j]) { - count++; - } + int limit = Math.min(arr0.length, arr1.length); + for (int i = 0; i < limit; i++) { + if (arr0[i] == arr1[i]) { + count++; } } return count; @@ -82,19 +79,16 @@ public static int countDuplicates(int[] arr0, int[] arr1) { /** * Sums all values in a 2D array * - * note: dimensions must be equal - * * @param arr The 2D array of integers. * @return The sum of all values in the 2D array. */ public static int sumMatrix(int[][] arr) { int sum = 0; - int n = arr.length; - for (int i = 0; i < n; i++) { - for (int j = 0; j < n; j++) { - sum += arr[i][j]; + for (int[] row : arr) { + for (int val : row) { + sum += val; } } return sum; } -} +} \ No newline at end of file