题解 | #24点游戏算法#

24点游戏算法

http://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

import java.util.*;
public class Main {
        public static boolean[] visited = new boolean[4];
        public static int[] nums = new int[4];
        public static boolean flag = false;
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                for(int i=0;i<4;i++){
                    nums[i]=sc.nextInt();
                }
                dfs(0,0);
                System.out.println(flag);
            }
        }
        public static void dfs(int start,double sum){
            //递归终止条件, start表示当前的位置 如果四个数字都遍历完了 最后start=4
            if(start==4){
                if(sum==24){
                    flag=true;
                }
            }else{
                start++;
                for(int i=0;i<4;i++){
                    if(!visited[i]){
                        visited[i]=true;//标记这轮循环中这个值已经访问过
                        dfs(start,sum+nums[i]);
                        dfs(start,sum-nums[i]);
                        dfs(start,sum*nums[i]);
                        dfs(start,sum/nums[i]);
                        visited[i]=false;
                    }
                }
            }
        }
}
全部评论
用例不通过
点赞 回复 分享
发布于 01-14 21:51 陕西
厉害啊,简洁明了
点赞 回复 分享
发布于 2024-03-07 16:44 江苏

相关推荐

求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
6
4
分享

创作者周榜

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