问题:
方法:
核心函数就是判断是否是等差数列,遍历同时取出子区间然后排序后通过核心函数判断,如果符合结果输出true,否则输出false。
package com.eric.leetcode
class ArithmeticSubarrays {
fun checkArithmeticSubarrays(nums: IntArray, l: IntArray, r: IntArray): List<Boolean> {
val result = mutableListOf<Boolean>()
for (index in 0..l.lastIndex) {
val start = l[index]
val end = r[index]
result.add(isArithmetic(nums.slice(start..end).sorted()))
}
return result
}
private fun isArithmetic(sorted: List<Int>): Boolean {
if (sorted.size >= 2) {
val delta = sorted[1] - sorted[0]
for (index in 1 until sorted.lastIndex) {
if (sorted[index + 1] - sorted[index] != delta) {
return false
}
}
}
return true
}
}
有问题随时沟通
网友评论