腾讯音乐906
第一题和第三题a了,第二题过了5%,想不出来有啥问题,有大佬帮忙瞅瞅咋回事吗?
public int kawaiiStrings(int n) { if (n < 4) return 0; // write code here long[][] arr = new long[n + 1][3]; // arr[i] 表示 以 r e d 结尾的合法数量 long mod = 1000000007; arr[4][0] = 0; arr[4][1] = 0; arr[4][2] = 3; for (int i = 5; i < n + 1; i++) { // i 为 r/e 时,i-1 可以为 r/e/d arr[i][0] = arr[i - 1][0] + arr[i - 1][1] + arr[i - 1][2]; arr[i][1] = arr[i - 1][0] + arr[i - 1][1] + arr[i - 1][2]; // 此时 i 为 d,i-1 可以为 r/d;i-1 为 e 时,i-2 只能为 e/d // arr[i-1][2] 以 dd 结尾 // arr[i-1][0] 以 rd 结尾 // arr[i-2][1] 以 eed 结尾 // arr[i-2][2] 以 ded 结尾 arr[i][2] = arr[i - 1][2] + arr[i - 1][0] + arr[i - 2][1] + arr[i - 2][2]; arr[i][0] %= mod; arr[i][1] %= mod; arr[i][2] %= mod; } long res = (arr[n][0] + arr[n][1] + arr[n][2]) % mod; return (int) res; }#腾讯音乐笔试##悬赏#