Kimi LeetCode 3343. 统计平衡排列的数目 Java实现
📅 2026/6/29 9:52:47
👁️ 次浏览
以下是 LeetCode 3343. 统计平衡排列的数目的 Java 实现。这道题的核心思路是记忆化搜索 组合数学。题目分析- 平衡排列定义偶数位0,2,4...数字之和等于奇数位1,3,5...数字之和- 设字符串长度为 n偶数位有 (n1)/2 个奇数位有 n/2 个- 先统计每个数字出现次数计算总和。如果总和为奇数直接返回 0- 目标从每个数字的出现次数中分配一部分到偶数位一部分到奇数位使得偶数位数字之和等于总和的一半代码实现javaclass Solution {private final int[] cnt new int[10]; // 每个数字的出现次数private final int mod (int) 1e9 7;private Integer[][][][] f; // 记忆化数组private long[][] c; // 组合数表public int countBalancedPermutations(String num) {int s 0;for (char ch : num.toCharArray()) {cnt[ch - 0];s ch - 0;}// 如果总和为奇数无法平衡if (s % 2 1) {return 0;}int n num.length();int m n / 2 1;// 初始化记忆化数组f new Integer[10][s / 2 1][m][m 1];// 预处理组合数 C[n][k]c new long[m 1][m 1];c[0][0] 1;for (int i 1; i m; i) {c[i][0] 1;for (int j 1; j i; j) {c[i][j] (c[i - 1][j] c[i - 1][j - 1]) % mod;}}// dfs(i, j, a, b):// i: 当前处理的数字(0-9)// j: 偶数位还需要凑的和// a: 偶数位还剩下的空位// b: 奇数位还剩下的空位return dfs(0, s / 2, n / 2, (n 1) / 2);}private int dfs(int i, int j, int a, int b) {// 所有数字处理完毕if (i 9) {return ((j | a | b) 0) ? 1 : 0;}// 偶数位没位置了但还需要凑和不可能if (a 0 j ! 0) {return 0;}// 记忆化if (f[i][j][a][b] ! null) {return f[i][j][a][b];}int ans 0;// 枚举当前数字 i 放到偶数位的个数 l// 放到奇数位的个数就是 cnt[i] - lfor (int l 0; l Math.min(cnt[i], a); l) {int r cnt[i] - l; // 放到奇数位的个数// 需要满足奇数位放得下且偶数位凑的和不超过目标if (r 0 r b l * i j) {// 从偶数位 a 个位置选 l 个放数字 i: C[a][l]// 从奇数位 b 个位置选 r 个放数字 i: C[b][r]long ways c[a][l] * c[b][r] % mod;int next dfs(i 1, j - l * i, a - l, b - r);ans (int) ((ans ways * next % mod) % mod);}}return f[i][j][a][b] ans;}}核心思路说明要点 说明状态定义 dfs(i, j, a, b) 表示处理到数字 i 时偶数位还需凑 j 的和还剩 a 个偶数位空位和 b 个奇数位空位转移 枚举数字 i 放到偶数位的个数 l奇数位自动放 cnt[i]-l 个组合数 用 C[a][l] * C[b][r] 计算当前数字的放置方案数边界 处理完 0-9 所有数字后检查 j0 a0 b0复杂度- 时间复杂度: O(10 \times n^2 \times (n 10)) — 其中 10 是数字种类数- 空间复杂度: O(10 \times n^2 \times (n/21)) — 记忆化数组大小参考来源- (Doocs LeetCode 官方题解)- (每日一题题解)
在user文件夹添加shake文件夹添加shake.c,shake.h文件//在shake.c
#include"sahke.h"
#include"stm32f10x.h"void Shake_Init(void)
{}//在shake.h
#include"stm32f10x.h"void Shake_Init(void);//在main.c里调用Shake_Init();并且添…
📅 2026/6/28 16:35:06
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…
📅 2026/6/29 4:03:08
The Big Mac index巨无霸指数是《经济学人》杂志发明的一个通俗指标,用来衡量各国货币相对美元是高估还是低估。
这是一个 2025年巨无霸指数(Big Mac Index) 的数据表格,使用 Highcharts Grid 来实现。
可以在经济学人数据服务找…
📅 2026/6/29 14:05:31
Datavines数据质量管理平台完整指南:从架构设计到生产部署的27种检查规则深度解析 【免费下载链接】datavines Know your data better!Datavines is Next-gen Data Observability Platform, support metadata manage and data quality. 项目地址: http…
📅 2026/6/29 15:58:55
3步完成专业色彩校准:用novideo_srgb解决广色域显示器色彩失真问题 【免费下载链接】novideo_srgb Calibrate monitors to sRGB or other color spaces on NVIDIA GPUs, based on EDID data or ICC profiles 项目地址: https://gitcode.com/gh_mirrors/no/novideo…
📅 2026/6/29 15:58:55
WechatDecrypt终极指南:快速解密微信聊天数据库的完整解决方案 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt
在数字化时代,微信聊天记录承载着我们的社交记忆和重要信息…
📅 2026/6/29 15:58:55
ComfyUI ControlNet Aux插件完全指南:解锁AI绘画的终极控制力 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux
想要在ComfyUI中实现精准的图像控…
📅 2026/6/29 15:58:55
三步搭建个人音乐云服务器:Navidrome开源音乐流媒体终极指南 【免费下载链接】navidrome 🎧 Your Personal Streaming Service 项目地址: https://gitcode.com/gh_mirrors/na/navidrome
厌倦了音乐平台的订阅费用和曲库限制?想要拥有…
📅 2026/6/29 15:58:55
1. 项目概述:为什么生产环境必须告别明文密码?干了这么多年后端开发,最让我后怕的不是线上宕机,而是早年处理用户数据时犯下的低级安全错误。其中最典型、也最危险的,就是把用户的密码直接存进数据库。你可能觉得这都2…
📅 2026/6/29 15:53:54
在商业化内容生产、项目策划、短视频脚本开发场景中,AI模型的创意发散能力、逻辑架构能力、落地执行能力是核心考核指标。不同大模型的训练侧重不同,在方案撰写、脚本创作场景的输出质量差距极大。
为给技术从业者、内容创作者、运营人员提供精准的模型…
📅 2026/6/29 0:00:42
1. 这不是教科书里的“蒙特卡洛离策略”,而是我在强化学习项目里亲手调通的那套逻辑“Monte Carlo Off-Policy Explained”——看到这个标题,别急着去翻Sutton那本绿皮书第5章。我带过三个工业级强化学习落地项目,从智能仓储调度到金融风控策…
📅 2026/6/29 0:00:43
1. 转型背景与核心驱动力最近几年,身边不少做Java后端开发的朋友,都开始或多或少地关注起安全开发这个方向。我自己也是从写了七八年Java业务代码,一步步转向了安全领域,现在主要做代码审计和自动化安全工具开发。这个转变不是一时…
📅 2026/6/29 0:00:43
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/29 4:18:42
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/29 4:18:42