题解 | #牛牛的果实排序#素数筛
牛牛的果实排序
https://www.nowcoder.com/practice/975a263e2ae34a669354e0bd64db9e2a
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param trees int整型一维数组 * @return int整型一维数组 */ public int[] primeFruits (int[] trees) { // 获取输入数组中的最大值 int maxNum = Arrays.stream(trees).max().getAsInt(); boolean[] isPrime = new boolean[maxNum + 1]; Arrays.fill(isPrime, true); // 初始化isPrime数组,0和1不是质数 isPrime[0] = isPrime[1] = false; // 标记质数 for (int i = 2; i * i <= maxNum; i++) { if (isPrime[i]) { for (int j = i * i; j <= maxNum; j += i) { isPrime[j] = false; } } } // 存储质数并计算质数的数量 int count = 0; for (int num : trees) { if (num > 1 && isPrime[num]) { count++; } } // 创建新的数组存放质数 int[] primeArray = new int[count]; int index = 0; // 提取并放入质数 for (int num : trees) { if (num > 1 && isPrime[num]) { primeArray[index++] = num; } } // 对质数数组进行排序 Arrays.sort(primeArray); return primeArray; } }