From 02a47a27b756796b060a0c181b40ad4434d40775 Mon Sep 17 00:00:00 2001 From: Sangmin Date: Tue, 8 Apr 2025 20:26:05 +0900 Subject: [PATCH 1/4] feat: valid-anagram solution --- valid-anagram/sm9171.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 valid-anagram/sm9171.java diff --git a/valid-anagram/sm9171.java b/valid-anagram/sm9171.java new file mode 100644 index 000000000..aa6400a96 --- /dev/null +++ b/valid-anagram/sm9171.java @@ -0,0 +1,24 @@ +class Solution { + public boolean isAnagram(String s, String t) { + if (s.length() != t.length()) { + return false; + } + + HashMap map = new HashMap<>(); + char[] originString = s.toCharArray(); + for (int i = 0; i < originString.length; i++) { + Integer count = map.getOrDefault(originString[i], 0); + map.put(originString[i], count + 1); + } + + char[] targetString = t.toCharArray(); + for (int i = 0; i < targetString.length; i++) { + Integer count = map.get(targetString[i]); + if (count == null || count == 0) { + return false; + } + map.put(targetString[i], count - 1); + } + return true; + } +} \ No newline at end of file From 827238989e0404072aeb233d794714da6bb42442 Mon Sep 17 00:00:00 2001 From: Sangmin Date: Tue, 8 Apr 2025 20:31:55 +0900 Subject: [PATCH 2/4] style: add eol --- valid-anagram/sm9171.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/valid-anagram/sm9171.java b/valid-anagram/sm9171.java index aa6400a96..b44cf14a1 100644 --- a/valid-anagram/sm9171.java +++ b/valid-anagram/sm9171.java @@ -21,4 +21,4 @@ public boolean isAnagram(String s, String t) { } return true; } -} \ No newline at end of file +} From 536fe6a6cde60a74bf13dd19f0a77d2bf0c957dc Mon Sep 17 00:00:00 2001 From: Sangmin Date: Tue, 8 Apr 2025 21:37:11 +0900 Subject: [PATCH 3/4] feat: climbing-stairs solution --- climbing-stairs/sm9171.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 climbing-stairs/sm9171.java diff --git a/climbing-stairs/sm9171.java b/climbing-stairs/sm9171.java new file mode 100644 index 000000000..e0c83f206 --- /dev/null +++ b/climbing-stairs/sm9171.java @@ -0,0 +1,16 @@ +class Solution { + public int climbStairs(int n) { + int[] memo = new int[n+1]; + return recur(n, memo); + } + + public static int recur(int n, int[] memo) { + if (n < 0) return 0; + if (n == 0) return 1; + + if (memo[n] > 0) return memo[n]; + + memo[n] = recur(n - 1, memo) + recur(n - 2, memo); + return memo[n]; + } +} From 51ed2be526d5128f9058ac0bc49d3e147a35eaa1 Mon Sep 17 00:00:00 2001 From: Sangmin Date: Fri, 11 Apr 2025 23:48:45 +0900 Subject: [PATCH 4/4] feat: product-of-array-except-self solution --- product-of-array-except-self/sm9171.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 product-of-array-except-self/sm9171.java diff --git a/product-of-array-except-self/sm9171.java b/product-of-array-except-self/sm9171.java new file mode 100644 index 000000000..da755cbaa --- /dev/null +++ b/product-of-array-except-self/sm9171.java @@ -0,0 +1,18 @@ +class Solution { + public int[] productExceptSelf(int[] nums) { + int[] res = new int[nums.length]; + + res[0] = 1; + for (int i = 1; i < nums.length; i++) { + res[i] = res[i - 1] * nums[i - 1]; + } + + int acc = 1; + for (int i = nums.length - 2; i >= 0; i--) { + acc *= nums[i + 1]; + res[i] *= acc; + } + + return res; + } +}