哎,闲着无事的时候找了个简单题自己做了下,代码写成这样,然后看了下效率逻辑,可读性比别人都差多了,而且我还得考虑很多边界情况,纯粹的就是缝缝补补的结果。
fun removeDuplicates(nums: IntArray): Int {
var i = 0
var j = i + 1
while (j < nums.size) {
while (j < nums.size && nums[j] == nums[i]) {
j++
}
if (j >= nums.size) return i + 1
i++
nums[i] = nums[j]
j++
}
return i + 1
}
再看看大佬的解。
fun removeDuplicates(nums: IntArray): Int {
var i = 0
for (j in 1 until nums.size) {
if (nums[i] != nums[j]) {
i++
nums[i] = nums[j]
}
}
return i + 1
}
木了,果然只刷几十道题的脑子就是不好使~ 距离之前刷又过去了一年,一拖再拖再拖~
本站由以下主机服务商提供服务支持:
0条评论