LeetCode之Arithmetic Subarrays(Kotlin)

问题:



方法:
核心函数就是判断是否是等差数列,遍历同时取出子区间然后排序后通过核心函数判断,如果符合结果输出true,否则输出false。

package com.eric.leetcode

class ArithmeticSubarrays {
    fun checkArithmeticSubarrays(nums: IntArray, l: IntArray, r: IntArray): List {
        val result = mutableListOf()

        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): 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
    }
}

有问题随时沟通

具体代码实现可以参考Github

你可能感兴趣的:(LeetCode之Arithmetic Subarrays(Kotlin))