diff --git a/src/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java b/src/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java deleted file mode 100644 index e95a944..0000000 --- a/src/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java +++ /dev/null @@ -1,23 +0,0 @@ -import java.util.Arrays; - -public class HowManyNumbersAreSmallerThanTheCurrentNumber1365 { - public int[] smallerNumbersThanCurrent(int[] nums) { - int[] res = new int[nums.length]; - for (int i = 0; i < nums.length; i++) { - int cnt = 0; - for (int j = 0; j < nums.length; j++) { - if (i != j && nums[j] < nums[i]) { - cnt++; - } - } - res[i] = cnt; - } - return res; - } - - public static void main(String[] args) { - int[] nums = new int[]{8, 1, 2, 2, 3}; - // [4, 0, 1, 1, 3] - System.out.println(Arrays.toString(new HowManyNumbersAreSmallerThanTheCurrentNumber1365().smallerNumbersThanCurrent(nums))); - } -} diff --git a/src/main/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java b/src/main/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java new file mode 100644 index 0000000..5451fc1 --- /dev/null +++ b/src/main/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365.java @@ -0,0 +1,28 @@ +// Tags: Array +package com.leetcode.easy; + +public class HowManyNumbersAreSmallerThanTheCurrentNumber1365 { + /** + * Time Complexity: O(n²) where n is the length of the nums array + * - Outer loop iterates through all n elements + * - Inner loop also iterates through all n elements for each outer iteration + * - Total operations: n * n = n² + *
+ * Space Complexity: O(n) + * - Result array 'res' stores n elements + * - Only uses constant extra space for variables (i, j, count) + */ + public int[] smallerNumbersThanCurrent(int[] nums) { + int[] res = new int[nums.length]; + for (int i = 0; i < nums.length; i++) { + int count = 0; + for (int j = 0; j < nums.length; j++) { + if (i != j && nums[j] < nums[i]) { + count++; + } + } + res[i] = count; + } + return res; + } +} diff --git a/src/test/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365Test.java b/src/test/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365Test.java new file mode 100644 index 0000000..5eb53fc --- /dev/null +++ b/src/test/java/com/leetcode/easy/HowManyNumbersAreSmallerThanTheCurrentNumber1365Test.java @@ -0,0 +1,39 @@ +package com.leetcode.easy; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +public class HowManyNumbersAreSmallerThanTheCurrentNumber1365Test { + private HowManyNumbersAreSmallerThanTheCurrentNumber1365 solution; + + @BeforeEach + void setUp() { + solution = new HowManyNumbersAreSmallerThanTheCurrentNumber1365(); + } + + @Test + void testSmallerNumbersThanCurrent_Example1() { + int[] nums = {8, 1, 2, 2, 3}; + int[] expected = {4, 0, 1, 1, 3}; + int[] result = solution.smallerNumbersThanCurrent(nums); + assertArrayEquals(expected, result); + } + + @Test + void testSmallerNumbersThanCurrent_Example2() { + int[] nums = {6, 5, 4, 8}; + int[] expected = {2, 1, 0, 3}; + int[] result = solution.smallerNumbersThanCurrent(nums); + assertArrayEquals(expected, result); + } + + @Test + void testSmallerNumbersThanCurrent_Example3() { + int[] nums = {7, 7, 7, 7}; + int[] expected = {0, 0, 0, 0}; + int[] result = solution.smallerNumbersThanCurrent(nums); + assertArrayEquals(expected, result); + } +}