How to check if an array is all increasing or decreasing and the gap between numbers is 1, 2 or 3 in Kotlin

1 Answer

0 votes
fun isArraySortedAndValidGap(arr: IntArray): Boolean {
    if (arr.size < 2) return true

    val increasing = arr[1] > arr[0]
    for (i in 1 until arr.size) {
        val diff = Math.abs(arr[i] - arr[i - 1])
        if (diff < 1 || diff > 3) {
            return false
        }
        if ((increasing && arr[i] <= arr[i - 1]) || (!increasing && arr[i] >= arr[i - 1])) {
            return false
        }
    }
    return true
}

fun main() {
    val arr1 = intArrayOf(1, 2, 3, 5, 8, 11, 14, 15)
    println(isArraySortedAndValidGap(arr1)) 

    val arr2 = intArrayOf(15, 14, 11, 8, 5, 3, 2, 1)
    println(isArraySortedAndValidGap(arr2)) 

    val arr3 = intArrayOf(1, 2, 300, 5, 8, 11, 14, 15)
    println(isArraySortedAndValidGap(arr3)) 
}


 
/*
run:

true
true
false
 
*/

 



answered Jan 13, 2025 by avibootz
...