题解 | #素数伴侣#

素数伴侣

https://www.nowcoder.com/practice/b9eae162e02f4f928eac37d7699b352e

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while(in.hasNext()){
            int size = in.nextInt();
            int[] nums = new int[size];

            List<Integer> odds = new ArrayList<>();
            List<Integer> evens = new ArrayList<>();
            for(int i=0 ; i<size ; ++i){
                nums[i] = in.nextInt();
                if(nums[i] % 2 == 0){
                    evens.add(nums[i]);
                }
                else{
                    odds.add(nums[i]);
                }
            }
            int[] matchEven = new int[evens.size()]; //用于存放匹配的偶数,下标对应偶数的下标,元素为当前下标偶数匹配的奇数
            int count = 0;
            for(int i=0 ; i<odds.size() ; ++i){
                boolean[] v = new boolean[evens.size()];
                if(find(matchEven, v, odds.get(i), evens)){
                    ++count;
                }
            }
            System.out.println(count);
            
        }
    }

    public static boolean isPrime(int num){
        if(num == 1){
            return false;
        }
        for(int i=2 ; i<=Math.sqrt(num) ; ++i){
            if(num % i == 0){
                return false;
            }
        }
        return true;
    }

    public static boolean find(int[] matchEven, boolean[] v, int odd, List<Integer> evens){
        for(int i=0 ; i<evens.size() ; ++i){
            if(isPrime(evens.get(i)+odd) && v[i] == false){
                v[i] = true;
                if(matchEven[i] == 0 || find(matchEven, v, matchEven[i], evens)){
                    matchEven[i] = odd;
                    return true;
                }
            }
        }
    return false;
    }
}

全部评论

相关推荐

这一生如履薄冰:产品经理现在都要会微调大模型了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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