360笔试

今晚360 第一道代码
    public static void EX(int[] gailu,int money,List list,int time,int jiabantime)
	{
    if(time > gailu.length)
        {
            list.add(money);
            
        }
    else
        {
            if(gailu[time-1] == 0)
            {
                EX(gailu,money,list,time++,0);
            }
            else if(gailu[time-1] == 1)
            {
                jiabantime++;
                EX(gailu,money+jiabantime,list,time+1,jiabantime);
            }
            else if(gailu[time-1] == 2)
            {
            	EX(gailu,money,list,time+1,0);    
            	jiabantime++;
            	EX(gailu,money+jiabantime,list,time+1,jiabantime);
            }
        }
	}
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext())
        {
            int num = sc.nextInt();
            int[] gailu = new int[num];
            for(int i=0; i<num; i++)
                {
                    gailu[i] = sc.nextInt();
                }
            List<Integer> list = new ArrayList<Integer>();
            EX(gailu,0,list,1,0);
            long ans = 0;
            for(int i=0; i<list.size(); i++)
            {
                ans = ans + list.get(i);
            }
            System.out.println(ans/list.size());
        }

    }

有兄弟看看为什么只有18的通过率
#360校招##360公司##笔试题目#
全部评论
n太大时要用dp解,别用递归
2 回复 分享
发布于 2020-03-27 21:40
感觉自己凉了,第二题用啥?
点赞 回复 分享
发布于 2020-03-27 22:32
我能想到的Testcase都过了,不知道为啥还是只有18%;其中也用了DP
点赞 回复 分享
发布于 2020-03-27 22:30
时间超了吧,我也18
点赞 回复 分享
发布于 2020-03-27 21:35
我把递归换成dp,过了36😂真想不到该怎么继续优化了
点赞 回复 分享
发布于 2020-03-27 21:34

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务