ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

华为OD机试真题 新系统 2026-09-13 C++【受限序列重排】

华为OD机试真题 新系统 2026-09-13 C++【受限序列重排】 目录题目思路Code题目题目内容:给定一个包含 n 个整数的数组 nums 和一个整数 k,需要将 nums 中的所有元素重新排列,生成一个新的序列。数组下标从 0 开始,新序列中下标为 k-1 的元素和下标为 k 的元素不能相同。请统计满足条件的不同排列数量,相同的数组排列只统计一次;如果无法构造出满足条件的数组,输出 0。1 ≤ n ≤ 15,1 ≤ nums[i] ≤ 100,1 ≤ k ≤ n-1。输入描述:第一行输入以英文逗号分隔的数组 nums。第二行输入限制索引 k。输出描述:输出满足条件的不同数组排列数量。样例 1输入:2,2,3 1输出:2说明:只有 [3,2,2] 和 [2,3,2] 两种不同排列满足下标 0 与下标 1 的元素不同。思路整体思路:先计算多重集合的全部不同排列数量,再减去两个限制位置放置相同数值的无效排列数量。第一步:统计每个数值的出现次数。全部不同排列数等于 n 的阶乘除以各数值出现次数
返回列表