Kotlin刷题常用范式(持续更新)
1. 问题背景
目前使用Kotlin开发,大多是有Java、C++等类C语言基础的。对于想使用Kotlin通关Leetcode等OJ平台时,常常需要借鉴熟悉语言的思路来过渡。实际上,Kotlin与Java等现代语言做了一定的调整,具有一定的门槛。对此,基于本人入门Kotlin后的经验,总结部分语言对应的范式。
2. 具体公式
2.1. 静态变量
静态变量,在Kotlin中可以通过伴随对象模拟。
class Solution {
compaion object {
const val MILLIS = 1000
}
fun method() {
println("static value is $MILLIS")
}
}
2.2. 浮点数转换
Leetcode刷题,常常遇到大数求余的场景,最经典的数值为1e9+7,其类型为浮点数。
要使其转换为Int类型,可以:
class Solution {
compaion object {
const val MOD = (1e9 + 7).toInt()
}
}
2.3. 列表
实现不可变列表,可以:
val ints = intArrayOf(1, 2, 3)
val doubles = doubleArrayOf(0.1, 0.2)
val mat = arrayOf(intArrayOf(1, 2, 3), intArrayOf(3, 4, 5))
实现可变列表,可以
val ints = ArrayList<Int>()
ints.add(1)
2.4. 哈希表
实现可变哈希表,可以:
val countMap = mutableMapOf<Int, Int>()
countMap.put(1, 2)