Kimi LeetCode 3343. 统计平衡排列的数目 Java实现
📅 2026/6/23 15:55:43
👁️ 次浏览
以下是 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/23 15:55:43
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…
📅 2026/6/23 15:55:43
The Big Mac index巨无霸指数是《经济学人》杂志发明的一个通俗指标,用来衡量各国货币相对美元是高估还是低估。
这是一个 2025年巨无霸指数(Big Mac Index) 的数据表格,使用 Highcharts Grid 来实现。
可以在经济学人数据服务找…
📅 2026/6/23 15:55:43
收起
tldr: 1、好 prompt 是激活正确分布:底层原理 2、对于强 agentic 模型,过度规则会造成模型开始“执行规则”,而不是进入状态:不同模型,不同策略 3、编写prompt的采样也是在挖掘自己的真正需求:模型可…
📅 2026/6/23 19:36:42
5个技巧教你用Gitea Actions实现自动化部署流水线,告别手动部署烦恼 【免费下载链接】gitea Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry a…
📅 2026/6/23 19:36:42
企业每年都会拨出大笔预算投入到各大平台的推广中。可是当活动结束,大家围在一起看报告时,总会怀疑那些动辄上万的互动量里到底掺了多少水分。为了拿奖品而来的羊毛党,或是毫无营养的表情包刷屏,让真实的传播效果变得面目全非。想…
📅 2026/6/23 19:36:42
服装批量裁剪的行业效率瓶颈
服装生产中,批量裁剪是影响产能的关键环节。传统刀片裁剪存在诸多局限:多层布料堆叠易移位导致尺寸偏差,手工排版材料浪费严重,刀具磨损后需频繁更换影响效率,复杂版型切割耗时久且一致性差…
📅 2026/6/23 19:36:42
如何永久备份微信朋友圈:专业导出工具的3个核心秘诀 【免费下载链接】WechatMoments 微信朋友圈导出工具-技术爬爬虾 项目地址: https://gitcode.com/gh_mirrors/we/WechatMoments
你是否担心珍贵的微信朋友圈记忆会随着时间流逝而消失?朋友圈里的…
📅 2026/6/23 19:36:42
在股市中,“对风险的厌恶”是人性最底层的本能,但它往往被直觉扭曲,导致投资者做出看似“求稳”、实则“有害”的决策。行为金融学中,这被称为损失厌恶(Loss Aversion)——即亏损带来的痛苦,远大于同等盈利带来的快乐(心理系数约为2.5倍)。
这种人性在A股市场有3个非…
📅 2026/6/23 19:31:41
1. GRIP模型:问答系统的新范式在自然语言处理领域,问答系统(QA)一直是最具挑战性的任务之一。传统方法要么依赖预训练语言模型的参数化知识,要么采用固定的检索-生成流程,都存在明显的局限性。GRIP(Grounded Retrieval with Itera…
📅 2026/6/23 0:51:59
1. 项目概述:一次对高危漏洞的深度剖析与实战复现最近在安全圈里,一个关于Atlassian Confluence的漏洞讨论热度很高,编号是CVE-2023-22527。这个漏洞的标签是“远程代码执行”,对于任何使用Confluence作为知识管理和协作平台的企业…
📅 2026/6/23 0:51:59
1. 项目概述:为什么微信小程序也需要渗透测试? 你可能觉得,微信小程序运行在微信这个“超级App”的沙箱里,天然就比独立的App或网站更安全。这种想法在几年前或许还说得通,但随着小程序生态的爆炸式增长,它…
📅 2026/6/23 0:51:59
1. 从手册到实战:SLIDER与SPINBOX控件的深度解析在嵌入式GUI开发里摸爬滚打十几年,我见过太多项目因为界面交互的“小问题”而卡壳。参数调节不跟手、数值输入效率低下,这些看似不起眼的细节,往往是决定产品用户体验成败的关键。e…
📅 2026/6/23 3:33:35
暗黑2重获新生:D2DX如何让经典游戏在现代Windows系统上流畅运行 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx
…
📅 2026/6/23 2:15:55
CompressO终极指南:免费开源的视频图像压缩神器 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO
你…
📅 2026/6/23 3:43:12