题解 | #牛牛的果实排序#

牛牛的果实排序

https://www.nowcoder.com/practice/975a263e2ae34a669354e0bd64db9e2a

/**
 * 函数primeFruits接收一个数字数组trees,返回数组中所有质数对应的索引数组。
 * 质数定义为大于1且只能被1和自身整除的数。
 * 
 * @param trees 数字数组,代表每种水果的数量。
 * @returns 数组,包含输入数组中质数的索引。
 */
export function primeFruits(trees: number[]): number[] {
    // 如果输入数组为空,则直接返回空数组
    if(!trees || trees.length == 0) return []
    
    /**
     * 函数isZhishu用于判断一个数是否为质数。
     * 
     * @param num 需要判断的数字。
     * @returns 布尔值,如果num是质数则返回true,否则返回false。
     */
    function isZhishu(num: number): boolean {
        // 1不是质数,直接返回false
        if(num == 1) return false
        // 2和3是质数,直接返回true
        if(num <= 3) return true
        // 从2开始遍历到num的平方根,检查是否有能整除num的数
        for(let i = 2; i * i <= num; i++){
            // 如果找到能整除num的数,则num不是质数,返回false
            if(num % i == 0) return false
        }
        // 如果遍历完成后没有找到能整除num的数,则num是质数,返回true
        return true
    }
    
    // 使用filter方法筛选出数组trees中的质数
    let arr = trees.filter(isZhishu)
    // 对筛选出的质数数组进行升序排序
    arr.sort((a, b) => a - b)
    // 返回排序后的质数数组
    return arr
}

全部评论

相关推荐

2025-12-18 19:36
已编辑
门头沟学院 Java
程序员牛肉:可以的,简历没毛病了。 虽然还是偏向同质化,不过学历不错。后续我觉得重心放到刷实习+摆脱同质化问题上
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务