携程笔试到底怎么做呀-第一题

鼠鼠太菜了,求大佬指点一下
第一题:用的全排列,加判断会不会有相邻元素之和都不是素数才统计到最终结果种,但是只通过了44%
    public static int func(int n){
        int[] used = new int[n+1];
             huisu(n,used);
             return result.size();
    }
    public static void huisu(int n,int[] used){
        if(list.size() == n){
            result.add(new ArrayList<>(list));
            return;
        }
        for(int i = 1;i <= n;i++){
            if(used[i] == 1){
                continue;
            }
            if(!list.isEmpty() &amp;&amp; !isValid(list.get(list.size()-1),i)){
                continue;
            }
            used[i] = 1;
            list.add(i);
            huisu(n,used);
            list.remove(list.size()-1);
            used[i] = 0;
        }

    }
    public static boolean isValid(int m,int n){
        if(m+n == 6 || m+n == 4 || m+n == 8 || m+n == 9){
            return true;
        }
        return false;
    }

}
全部评论
判断素数很简单 你只需要判断是否为20以内的素数(就八个)就好了,反正输入条件是2-10
点赞 回复 分享
发布于 2023-09-08 10:43 四川
你这个判断素数有问题,网上去看看吧
点赞 回复 分享
发布于 2023-09-08 10:32 重庆

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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