552. Student Attendance Record II
Posted KRisen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了552. Student Attendance Record II相关的知识,希望对你有一定的参考价值。
Problem refer: https://leetcode.com/problems/student-attendance-record-ii/description
// My solution: // A good mathmatical derivation problem. // But it makes me confused with the word: "more than two continuous ‘L‘ (late)". // And finally find it actually represents "LLL". // The last solution refers to the discuss: // https://discuss.leetcode.com/topic/86696/share-my-o-n-c-dp-solution-with-thinking-process-and-explanation class Solution { public: static const int N = 100000 + 1; static const int MOD = 1000000000 + 7; int P[N],L[N],A[N]; int ans[N]; int calc(int n) { if (ans[n]) return ans[n]; calc(n-1); P[n] = (P[n-1] + A[n-1])%MOD + L[n-1]; P[n] %= MOD; L[n] = ((P[n-1] + A[n-1])%MOD + A[n-2])%MOD + P[n-2]; L[n] %= MOD; A[n] = (A[n-1] + A[n-2])%MOD + A[n-3]; A[n] %= MOD; ans[n] = (P[n] + L[n])%MOD + A[n]; ans[n]%=MOD; return ans[n]; } int checkRecord(int n) { memset(ans, 0, sizeof ans); P[1]=L[1]=A[1]=1; ans[1] = 3; P[2] = L[2] = 3; A[2] = 2; ans[2] = 8; P[3] = 8; L[3] = 7; A[3] = 4; ans[3] = 19; return calc(n); } };
以上是关于552. Student Attendance Record II的主要内容,如果未能解决你的问题,请参考以下文章
551. Student Attendance Record I
551 Student Attendance Record I
551. Student Attendance Record I