File tree Expand file tree Collapse file tree 4 files changed +76
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 4 files changed +76
-0
lines changed Original file line number Diff line number Diff line change 1+ package leetcode_study
2+
3+ class SolutionContainsDuplicate {
4+ fun containsDuplicate (nums : IntArray ): Boolean {
5+ val size = nums.size
6+ val numsToSet = nums.toSet()
7+
8+ return size != numsToSet.size
9+ }
10+ }
Original file line number Diff line number Diff line change 1+ package leetcode_study
2+ class SolutionLongestConsecutiveSequence {
3+ fun longestConsecutive (nums : IntArray ): Int {
4+ nums.sort()
5+ var cnt = 0
6+ var maxCnt = 0
7+ nums.forEachIndexed { i, _ ->
8+ if (i == 0 ) {
9+ cnt = 1
10+ }
11+ else if (nums[i- 1 ] == nums[i] - 1 ) {
12+ cnt++
13+ }
14+ else if (nums[i - 1 ] == nums[i]) {
15+ return @forEachIndexed
16+ } else {
17+ cnt = 1
18+ }
19+ maxCnt = maxOf(maxCnt, cnt)
20+ }
21+
22+ return maxCnt
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ package leetcode_study
2+ class SolutionTopKFrequentElements {
3+ fun topKFrequent (nums : IntArray , k : Int ): IntArray {
4+ val numsCount = mutableMapOf<Int , Int >()
5+ for (num in nums) {
6+ val value = numsCount.getOrDefault(num, 0 )
7+ numsCount[num] = value + 1
8+ }
9+ val sortedNumsCount = numsCount.entries
10+ .sortedByDescending { it.value }
11+ .associate { it.toPair() }
12+
13+ return sortedNumsCount.keys.take(k).toIntArray()
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ package leetcode_study
2+
3+ class SolutionValidPalindrome {
4+ fun isPalindrome (s : String ): Boolean {
5+ val sToCharArray = s.toCharArray()
6+ var startIndex = 0
7+ var endIndex = sToCharArray.size - 1
8+ while (startIndex < endIndex) {
9+ if (! sToCharArray[startIndex].isLetterOrDigit() || sToCharArray[startIndex].isWhitespace()) {
10+ startIndex++
11+ continue
12+ }
13+ if (! sToCharArray[endIndex].isLetterOrDigit() || sToCharArray[endIndex].isWhitespace()) {
14+ endIndex--
15+ continue
16+ }
17+ if (sToCharArray[startIndex].lowercase() == sToCharArray[endIndex].lowercase()) {
18+ startIndex++
19+ endIndex--
20+ } else {
21+ return false
22+ }
23+ }
24+
25+ return true
26+ }
27+ }
You can’t perform that action at this time.
0 commit comments