From 5f152939b0023fc336bcef105f50c6de1588882f Mon Sep 17 00:00:00 2001 From: Real-Reason Date: Sun, 8 Dec 2024 01:26:17 +0900 Subject: [PATCH 1/3] feat: contains-duplicate solve --- contains-duplicate/Real-Reason.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 contains-duplicate/Real-Reason.kt diff --git a/contains-duplicate/Real-Reason.kt b/contains-duplicate/Real-Reason.kt new file mode 100644 index 000000000..599bfaa90 --- /dev/null +++ b/contains-duplicate/Real-Reason.kt @@ -0,0 +1,10 @@ +package leetcode_study + +class Solution { + fun containsDuplicate(nums: IntArray): Boolean { + val size = nums.size + val numsToSet = nums.toSet() + + return size != numsToSet.size + } +} \ No newline at end of file From b37f8ee14a42025decda8d47032c8607860ec7a5 Mon Sep 17 00:00:00 2001 From: Real-Reason Date: Tue, 10 Dec 2024 00:13:50 +0900 Subject: [PATCH 2/3] feat: valid-palindrome solve --- contains-duplicate/Real-Reason.kt | 4 ++-- valid-palindrome/Real-Reason.kt | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 valid-palindrome/Real-Reason.kt diff --git a/contains-duplicate/Real-Reason.kt b/contains-duplicate/Real-Reason.kt index 599bfaa90..c745379d3 100644 --- a/contains-duplicate/Real-Reason.kt +++ b/contains-duplicate/Real-Reason.kt @@ -1,10 +1,10 @@ package leetcode_study -class Solution { +class SolutionContainsDuplicate { fun containsDuplicate(nums: IntArray): Boolean { val size = nums.size val numsToSet = nums.toSet() return size != numsToSet.size } -} \ No newline at end of file +} diff --git a/valid-palindrome/Real-Reason.kt b/valid-palindrome/Real-Reason.kt new file mode 100644 index 000000000..23ae90f07 --- /dev/null +++ b/valid-palindrome/Real-Reason.kt @@ -0,0 +1,27 @@ +package leetcode_study + +class SolutionValidPalindrome { + fun isPalindrome(s: String): Boolean { + val sToCharArray = s.toCharArray() + var startIndex = 0 + var endIndex = sToCharArray.size - 1 + while (startIndex < endIndex) { + if (!sToCharArray[startIndex].isLetterOrDigit() || sToCharArray[startIndex].isWhitespace()) { + startIndex++ + continue + } + if (!sToCharArray[endIndex].isLetterOrDigit() || sToCharArray[endIndex].isWhitespace()) { + endIndex-- + continue + } + if (sToCharArray[startIndex].lowercase() == sToCharArray[endIndex].lowercase()) { + startIndex++ + endIndex-- + } else { + return false + } + } + + return true + } +} From 9deb8d9c8dcc81eee8ccef8dc432faf43fb4aa21 Mon Sep 17 00:00:00 2001 From: Real-Reason Date: Wed, 11 Dec 2024 01:20:48 +0900 Subject: [PATCH 3/3] feat: longest-consecutive-sequence, top-k-frequent-elements solve --- longest-consecutive-sequence/Real-Reason.kt | 24 +++++++++++++++++++++ top-k-frequent-elements/Real-Reason.kt | 15 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 longest-consecutive-sequence/Real-Reason.kt create mode 100644 top-k-frequent-elements/Real-Reason.kt diff --git a/longest-consecutive-sequence/Real-Reason.kt b/longest-consecutive-sequence/Real-Reason.kt new file mode 100644 index 000000000..d0f1c2c29 --- /dev/null +++ b/longest-consecutive-sequence/Real-Reason.kt @@ -0,0 +1,24 @@ +package leetcode_study +class SolutionLongestConsecutiveSequence { + fun longestConsecutive(nums: IntArray): Int { + nums.sort() + var cnt = 0 + var maxCnt = 0 + nums.forEachIndexed { i, _ -> + if (i == 0) { + cnt = 1 + } + else if (nums[i-1] == nums[i] - 1) { + cnt++ + } + else if (nums[i - 1] == nums[i]) { + return@forEachIndexed + } else { + cnt = 1 + } + maxCnt = maxOf(maxCnt, cnt) + } + + return maxCnt + } +} diff --git a/top-k-frequent-elements/Real-Reason.kt b/top-k-frequent-elements/Real-Reason.kt new file mode 100644 index 000000000..b88a28641 --- /dev/null +++ b/top-k-frequent-elements/Real-Reason.kt @@ -0,0 +1,15 @@ +package leetcode_study +class SolutionTopKFrequentElements { + fun topKFrequent(nums: IntArray, k: Int): IntArray { + val numsCount = mutableMapOf() + for (num in nums) { + val value = numsCount.getOrDefault(num, 0) + numsCount[num] = value + 1 + } + val sortedNumsCount = numsCount.entries + .sortedByDescending { it.value } + .associate { it.toPair() } + + return sortedNumsCount.keys.take(k).toIntArray() + } +}