public class Solution { public int MagicalString(int n) { if (n <= 0) return 0; if (n <= 3) return 1; int[] a = new int[n + 1]; a[0] = 1; a[1] = 2; a[2] = 2; int head = 2, tail = 3, num = 1, result = 1; while (tail < n) { for (int i = 0; i < a[head]; i++) { a[tail] = num; if (num == 1 && tail < n) { result++; } tail++; } num = num ^ 3;//异或 head++; } return result; } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步