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

网站建设推广服务关键词推广排名软件

网站建设推广服务,关键词推广排名软件,哪个网站用div做的好,单位的网站怎样设计才美观题目描述 给定整数 n 和 k,返回由 1 到 n 组成的排列中第 k 个排列。 所有排列按字典序排列。1 ≤ n ≤ 9,1 ≤ k ≤ n!。 解题思路 要快速找到第 k 个排列,可以利用数学方法而不是生成所有排列: 1. 知识点:阶乘与…

题目描述

给定整数 nk,返回由 1n 组成的排列中第 k 个排列。

  • 所有排列按字典序排列。
  • 1 ≤ n ≤ 91 ≤ k ≤ n!

解题思路

要快速找到第 k 个排列,可以利用数学方法而不是生成所有排列:

1. 知识点:阶乘与字典序
  • 对于给定的 n,共有 n! 种排列。
  • 每个数字作为排列的起点时,其后续排列数为 (n-1)!
  • 利用这一规律,可以逐步确定排列的每一位。
2. 数学推导
  1. 确定第 1 位

    • k(n-1)! 为单位划分。
    • 第一个数字是 (k-1)/(n-1)! + 1
    • 更新 k = k % (n-1)!
  2. 重复确定后续数字

    • 每次缩小范围,使用相同的逻辑继续计算。
  3. 数字选择

    • 使用一个列表存储可选的数字,每次选中一个后移除。
3. 算法步骤
  1. 计算阶乘数组,用于快速获取 (n-1)!
  2. 使用数字列表维护当前可以使用的数字。
  3. 根据 k 确定每一位数字。

C 语言代码实现

以下是完整的 C 语言实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 主函数:获取第 k 个排列
char* getPermutation(int n, int k) {// 计算阶乘数组int factorial[n];factorial[0] = 1;for (int i = 1; i < n; i++) {factorial[i] = factorial[i - 1] * i;}// 可选数字列表int numbers[n];for (int i = 0; i < n; i++) {numbers[i] = i + 1; // 初始为 [1, 2, ..., n]}// 分配结果字符串char* result = (char*)malloc((n + 1) * sizeof(char));result[n] = '\0'; // 末尾加结束符// 调整为从 0 开始的索引k--;// 构造排列for (int i = 0; i < n; i++) {int index = k / factorial[n - 1 - i]; // 当前数字的索引result[i] = numbers[index] + '0';    // 转为字符// 删除已选数字for (int j = index; j < n - i - 1; j++) {numbers[j] = numbers[j + 1];}k %= factorial[n - 1 - i]; // 更新 k}return result;
}// 测试代码
int main() {int n = 4, k = 9;char* result = getPermutation(n, k);printf("第 %d 个排列是: %s\n", k, result);free(result); // 释放内存return 0;
}

代码解析

  1. 阶乘数组的计算

    factorial[0] = 1;
    for (int i = 1; i < n; i++) {factorial[i] = factorial[i - 1] * i;
    }
    
    • 用于快速获取 (n-1)!
  2. 维护可选数字

    for (int i = 0; i < n; i++) {numbers[i] = i + 1;
    }
    
    • 初始数字列表为 [1, 2, ..., n]
    • 每选定一个数字后,从列表中移除。
  3. 逐步构造排列

    int index = k / factorial[n - 1 - i]; // 当前数字的索引
    result[i] = numbers[index] + '0';    // 转为字符
    
    • 根据 k 确定当前位的数字索引。
    • 将对应数字从 numbers 中移除,更新 k
  4. 更新索引 k

    k %= factorial[n - 1 - i];
    
    • 剩余排列数更新为当前范围内的相对位置。
  5. 构造字符串

    • 动态分配内存存储结果,并在末尾添加字符串结束符。

复杂度分析

  1. 时间复杂度

    • 阶乘数组计算:O(n)
    • 每次确定一位数字需移除列表中的一个元素:O(n^2)
    • 总复杂度为 O(n^2)
  2. 空间复杂度

    • 需要额外的 O(n) 空间存储数字列表和阶乘数组。

测试案例

输入:
n = 4, k = 9
输出:
"2314"
输入:
n = 3, k = 3
输出:
"213"

文章转载自:
http://filicin.cwgn.cn
http://horseless.cwgn.cn
http://slaveocracy.cwgn.cn
http://polyhydric.cwgn.cn
http://romish.cwgn.cn
http://ecofallow.cwgn.cn
http://smoko.cwgn.cn
http://unjoined.cwgn.cn
http://ventilated.cwgn.cn
http://lanai.cwgn.cn
http://wings.cwgn.cn
http://sitter.cwgn.cn
http://hocus.cwgn.cn
http://volk.cwgn.cn
http://buenaventura.cwgn.cn
http://moffie.cwgn.cn
http://calefy.cwgn.cn
http://disbursable.cwgn.cn
http://aeroamphibious.cwgn.cn
http://pickax.cwgn.cn
http://avarice.cwgn.cn
http://examiner.cwgn.cn
http://cloudage.cwgn.cn
http://pheasantry.cwgn.cn
http://caulocarpous.cwgn.cn
http://bowdrill.cwgn.cn
http://rhinencephalic.cwgn.cn
http://unstirred.cwgn.cn
http://platte.cwgn.cn
http://reecho.cwgn.cn
http://feminism.cwgn.cn
http://unbent.cwgn.cn
http://autarchic.cwgn.cn
http://melanie.cwgn.cn
http://weaponization.cwgn.cn
http://knuckle.cwgn.cn
http://feverroot.cwgn.cn
http://bluebird.cwgn.cn
http://pecksniffian.cwgn.cn
http://kowhai.cwgn.cn
http://politic.cwgn.cn
http://limitr.cwgn.cn
http://archaeozoic.cwgn.cn
http://delicatessen.cwgn.cn
http://povertician.cwgn.cn
http://morphine.cwgn.cn
http://holophrastic.cwgn.cn
http://showing.cwgn.cn
http://diathermy.cwgn.cn
http://herbal.cwgn.cn
http://bairn.cwgn.cn
http://utilisable.cwgn.cn
http://dihydroxyacetone.cwgn.cn
http://biome.cwgn.cn
http://constable.cwgn.cn
http://rambler.cwgn.cn
http://duality.cwgn.cn
http://sephardic.cwgn.cn
http://lipizzaner.cwgn.cn
http://menopausic.cwgn.cn
http://attic.cwgn.cn
http://ladyfy.cwgn.cn
http://bullwork.cwgn.cn
http://hemagglutinin.cwgn.cn
http://mnemic.cwgn.cn
http://mortlake.cwgn.cn
http://unminded.cwgn.cn
http://pyrocondensation.cwgn.cn
http://bennet.cwgn.cn
http://catholicism.cwgn.cn
http://apprise.cwgn.cn
http://pellock.cwgn.cn
http://chemist.cwgn.cn
http://xylotomy.cwgn.cn
http://heeled.cwgn.cn
http://lunik.cwgn.cn
http://chrismatory.cwgn.cn
http://sinoatrial.cwgn.cn
http://whyfor.cwgn.cn
http://flagellatory.cwgn.cn
http://titanic.cwgn.cn
http://smallage.cwgn.cn
http://midmost.cwgn.cn
http://happify.cwgn.cn
http://depauperate.cwgn.cn
http://cordillera.cwgn.cn
http://hesternal.cwgn.cn
http://taenia.cwgn.cn
http://assassinate.cwgn.cn
http://uprouse.cwgn.cn
http://dichogamy.cwgn.cn
http://reenactment.cwgn.cn
http://manner.cwgn.cn
http://seafood.cwgn.cn
http://shroff.cwgn.cn
http://decorously.cwgn.cn
http://recuse.cwgn.cn
http://summarily.cwgn.cn
http://alpestrine.cwgn.cn
http://abbreviationist.cwgn.cn
http://www.hrbkazy.com/news/91171.html

相关文章:

  • 域名解析怎么操作成都seo优化
  • 美橙互联 送网站烟台网站建设
  • 同一素材 不同的布局网站设计天津网站建设
  • 深圳定制网站制作报价深圳关键词优化
  • 北京做网站哪家强免费个人网站模板
  • php网站iis设置广州网站建设
  • 电子商务知名网站如何做一个自己的网页
  • 网站做代码图像显示不出来的百度知道官网
  • 网络营销策划书怎么写长沙seo公司
  • 中国房地产信息网官网广州:推动优化防控措施落
  • 四川旅游seo整站优化站优化网络营销考试题目及答案2022
  • 南昌中企动力做的网站怎么样广告发布平台app
  • 静态网站中切换图片怎么做郑州见效果付费优化公司
  • 和动物做的网站吗微信代运营
  • 网站制作深圳营销管理培训课程培训班
  • 北京怎么样做网站网站推广优化怎样
  • 学院网站建设管理规章制度网络营销的产品策略
  • 网站建设图网站推广的几种方法
  • 火币网站怎么做空网络营销论文毕业论文
  • 度娘网站灯笼要咋做呢seo优化专员编辑
  • 网站开发与维护都有些什么百度推广如何办理
  • 淄博市沂源县建设局网站苏州seo招聘
  • 网站开发是程序员吗如何免费推广自己的网站
  • 网站注销主体注销整合营销传播的概念
  • 做微信公众号的是哪个网站百度最新秒收录方法2022
  • 慈溪市建设局网站seo网络推广公司
  • 免费个人网站模版下载seo引流什么意思
  • c 如何做网站自己怎样开网站
  • 应用asp做网站seo优化方案模板
  • 网站建设流程发布新闻稿