当前位置: 首页 > news >正文

Java | Leetcode Java题解之第552题学生出勤记录II

题目:

题解:

class Solution {static final int MOD = 1000000007;public int checkRecord(int n) {long[][] mat = {{1, 1, 0, 1, 0, 0},{1, 0, 1, 1, 0, 0},{1, 0, 0, 1, 0, 0},{0, 0, 0, 1, 1, 0},{0, 0, 0, 1, 0, 1},{0, 0, 0, 1, 0, 0}};long[][] res = pow(mat, n);long sum = Arrays.stream(res[0]).sum();return (int) (sum % MOD);}public long[][] pow(long[][] mat, int n) {long[][] ret = {{1, 0, 0, 0, 0, 0}};while (n > 0) {if ((n & 1) == 1) {ret = multiply(ret, mat);}n >>= 1;mat = multiply(mat, mat);}return ret;}public long[][] multiply(long[][] a, long[][] b) {int rows = a.length, columns = b[0].length, temp = b.length;long[][] c = new long[rows][columns];for (int i = 0; i < rows; i++) {for (int j = 0; j < columns; j++) {for (int k = 0; k < temp; k++) {c[i][j] += a[i][k] * b[k][j];c[i][j] %= MOD;}}}return c;}
}

http://www.mrgr.cn/news/68889.html

相关文章:

  • Java多线程详解⑦(全程干货!!!)内存可见性 || volatile || JMM || wait notify notifyAll
  • TCP连接如何保障数据传输安全
  • 抖音小程序上线全揭秘:开启抖音生态盈利新征程
  • 泷羽sec学习打卡-Windows基础virus
  • Day39 | 动态规划 :完全背包应用 零钱兑换零钱兑换II
  • multi_agents
  • CMD 查询python 出现 No pyvenv.cfg file 很奇怪 2024/11/9
  • 数据结构-并查集专题(2)
  • 走进算法大门---双指针问题(一)
  • 【数据结构】快慢指针探秘:理解链表与数组中的环结构
  • 【欧拉公式】从无穷级数角度理解
  • 【未解决】vite反向代理问题
  • FreeRTOS 15:FreeRTOS信号量
  • Quartus Prime的应用
  • C++ | Leetcode C++题解之第552题学生出勤记录II
  • AntPathMatcher 技术文档
  • NLP论文速读|Describe-then-Reason: 通过视觉理解训练来提升多模态数学的推理
  • 用 Python搭建一个微型的HTTP服务器用于传输 2024/11/9
  • 985研一学习日记 - 2024.11.8
  • 寡头垄断模型
  • OpenEuler 下 Docker 安装、配置与测试实例
  • 【51蛋骗鸡按键控制流水速度快慢数码管显示;按键切换流水方向3则】2022-3-7
  • isc-dhcp-server
  • 经典双指针--合并升序链表
  • Linux基础
  • 闯关leetcode——3194. Minimum Average of Smallest and Largest Elements