技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

Javaで配列が昇順 or 降順かを調べる

競技プログラミングの問題を解く際の時間短縮のため、Javaで配列が昇順 or 降順かを調べるメソッドを作成した。配列の要素が一個しかない場合、どう判定しようか迷ったが、そもそも要素が一個しかない場合、このメソッドを使うべきではないので、例外を上げることにした。

// 配列が昇順か調べる
boolean isAscendingOrder (int[] array) {
    if (array == null || array.length == 0) {
        throw new IllegalArgumentException("Input array is null or empty.");
    }
    // 要素が一個しかない場合は、判定できないので、例外を上げる。
    if (array.length == 1) {
        throw new IllegalArgumentException("Input array has only one element, so can't judge it.");
    }
    for (int i = 0; i <= array.length - 2; i++) {
        if (array[i] > array[i + 1]) { // 同値の場合は、false にしないことにする。(昇順と判定)
            return false;
        }
    }
    return true;
}

// 配列が降順か調べる
boolean isDescendingOrder (int[] array) {
    if (array == null || array.length == 0) {
        throw new IllegalArgumentException("Input array is null or empty.");
    }
    // 要素が一個しかない場合は、判定できないので、例外を上げる。
    if (array.length == 1) {
        throw new IllegalArgumentException("Input array has only one element, so can't judge it.");
    }
    for (int i = 0; i <= array.length - 2; i++) {
        if (array[i] < array[i + 1]) { // 同値の場合は、false にしないことにする。(降順と判定)
            return false;
        }
    }
    return true;
}