challenge 急勾配の判定

有限の長さの数列で,各要素の値が,その要素の後ろにある残りの列に含まれるすべての要素の和よりも大きい列を「急勾配の列」ということにします(空列の和は0とします).

任意の長さ(ただし有限の長さの)数列を与えられたとき,それが「急勾配の列」であるかどうかを判定する述語関数を定義してください.

必須ではありませんが,効率についてコメントがあれば面白いかもしれませんね.

Posted feedbacks - Java

思いっきりナイーブに。

強いて特徴を言うなら,エラーチェックやオーバーフロー対策がしてあるくらい?

1
2
3
4
5
6
7
8
9
public static boolean isSteep(int[] nums) {
    if (nums == null || nums.length == 0) return false;
    long sum = 0L;
    for (int i = nums.length - 1; i >= 0; i--) {
        if (nums[i] <= sum) return false;
        sum += nums[i];
    }
    return true;
}

Index

Feed

Other

Link

Pathtraq

loading...