配列(またはリスト)のすべての数値が等しいことを確認する最良の方法は何ですか?すべての数値が等しいことを確認する
私は、最初の不等要素istを求めるループは、おそらく効率的ですが、それほどエレガントでないか、または読み込み可能ではないと思います。 1行にすべてのソリューション?
配列(またはリスト)のすべての数値が等しいことを確認する最良の方法は何ですか?すべての数値が等しいことを確認する
私は、最初の不等要素istを求めるループは、おそらく効率的ですが、それほどエレガントでないか、または読み込み可能ではないと思います。 1行にすべてのソリューション?
この問題のすべてのソリューションは、Ω(n)の時間で実行され、Ω(n)の比較を行う必要があります言ったので、十分大きい配列の場合は、すべての要素を調べて同じ値を持つかどうかをチェックすることはできません。
アレイのリニアスキャンを実行して、最初のものと異なる値を探している場合は、おそらくこの問題を解決する最善の方法です。これは、下限と漸近的に一致する合計(n-1)の比較を行い、エレガントで簡単に実装できます。
正しい言語では1行ではありませんが、私はそれを1つにすることができると確信しています。
EDIT:あなたはこれがない場合ので、C#は...
return list.Length > 0 && list[0] == list.Aggregate(list[0], (current, i) => current & i);
はどのような言語でCの擬似コード
i = len(list) - 1;
while (list[i] == list[i+1] && i) i--;
return i == 0;
のいくつかの並べ替え? –
これ以上エレガントではありません。 –
たとえば、C#で(たぶんlinqとして)。 –