每日一题——LeetCode1175.质数排列

方法一 数学规律

其实题目的意思就是1-n里面本来是质数的位置只能放质数,非质数的位置只能放非质数,那么就把质数和非质数的排列分开考虑,假设有x个质数,根据数学的排列规律,那么这么质数的排列方案 数量为x的阶乘,同理非质数的排列为(n-x)的阶乘

所以这道题就是求质数的个数然后求两个阶乘的积

但是要注意对10^9+7取模,且应该是循环求阶乘时对每次循环的结果取模,不能只用最后的阶乘取模

javascript 复制代码
const mod = 1000000007;
var numPrimeArrangements = function(n) {
    var prime=0,res=1
    for(let i=2;i<=n;i++){
        if(isPrime(i)){ 
            prime++
        }
    }
    console.log(prime)
    var composite=n-prime
   while (prime > 0) {
        res = res % mod;
        res *= prime;
        prime--;
    }
    while (composite > 0) {
        res = res % mod;
        res *= composite;
        composite--;
    }
    
   return res
};

function isPrime(n) {
    if (n === 1) {
        return false;
    }
    for (let i = 2; i * i <= n; i++) {
        if (n % i === 0) {
            return false;
        }
    }
    return true;
}

消耗时间和内存情况:

相关推荐
Hi李耶16 小时前
【LeetCode】9-回文数
算法·leetcode·职场和发展
红叶舞16 小时前
基于线段树的数据结构
数据结构·python·算法
我要两颗404西柚16 小时前
Stage three:VUE工程化与实战工具
前端·javascript·vue.js
断点之下17 小时前
从“理扑克牌”到“分组优化”——直接插入排序与希尔排序详解
数据结构·算法·排序算法
起个破名想半天了17 小时前
算法与数据结构之DFS深度优先遍历
数据结构·算法·深度优先
李伟_Li慢慢17 小时前
凸包算法
人工智能·算法
徐礼昭|商派软件市场负责人17 小时前
AI Agent 蜂群协作与经验基因化:从单体执行到自组织系统的工程路径
大数据·人工智能·算法·智能体·多agent
写不来代码的草莓熊17 小时前
Cesium 地图交互绘制圆形、多边形
前端·javascript·地图
来者皆善17 小时前
【位RAW图像处理五】任意位深位图像的中值模糊快速实现及其应用。
图像处理·人工智能·算法
happyprince17 小时前
第三观 · 深刻不忘观 —— AngelSpec 哲学与升华
人工智能·算法