2020年2月15日
303地域と検索-不変配列 E
整数の配列を指定 NUMS、インデックスから配列要素 iが に J (I ≤ Jを構成する要素の範囲の和)、 I、Jの ポイント。
そして、一次元の接頭辞:
クラスNumArray { パブリック: ベクトル < 長い 長い > DP; NumArray(ベクトル < INT >&NUMS){ int型 N = nums.size()。 dp.resize(N + 1 )。 以下のために(INT iが= 1 ; I <= N; I ++ ) DP [I] = DP [I- 1 ] + NUMS [I- 1 ]。 } INT sumRange(INT I、int型のJ){ 戻り DP [J + 1 ] - DP [I]。 } }。 / * * *あなたのNumArrayオブジェクトは、次のようなインスタンス化と呼ばれます。 * NumArray * OBJ =新しいNumArray(NUMS)。 * int型PARAM_1 = obj-> sumRange(i、j)は、 * /
413演算シーケンスが分割されている M
少なくとも3つの要素と同じ差の任意の2つの隣接する要素の系列は、演算シーケンスの数として呼び出された場合。
クラス解決{ パブリック: int型 numberOfArithmeticSlices(ベクトル< INT >&A){ int型 N = A.size()。 ベクター < INT > DP(N-); // DP [I]の演算シーケンス番号の末尾にA [I]で表される ため(INT I = 2 ;私は<N-; I ++ ) IF(A [I] -A [I - 1 ] == A [I- 1 ] -A [I- 2 ]) DP [I] = DP [I- 1 ] + 1 。 int型の合計= 0 ; 以下のための(自動X:DP)の合計+ = X。 戻り値の合計。 } }。