编程之美BOF 16初赛告捷

编程之美初赛过了,进入了复赛。
话说吭哧吭哧2个小时只做出了两道题,也能进复赛,表示还是很开心,然而查看排行榜的时候,也看到了那种2个小时把7道题全部做出来的大神,我也只能膜拜了。
这次比赛有两个区,由于只做出了两道,连第二区的解锁条件都没达到,就简单回顾下第一区的四道题吧。

00 之回顾

00.01

这道题输入为一个一维数组a,返回另一个一维数组b。关系为由小到大的牌序,返回a中每个元素,分别的排序值。

例:
a={5,1,4,1}
b={3,0,2,0}//没有1,因为有并列第0号元素

这题我没有完美解决,思路还是写出来,放在这里吧。要是有更巧妙的思路,欢迎留言。
用访问数组c保存访问过的位置,循环遍历a,每次找出没访问过的数中最小值,然后再循环a,把最小的数的位置设为访问过,并在b中的位置写上其的位置。

    public static int[] Puzzle(float[] a)
    {
        int i,j,num;
        float min;
        int n=a.length;
        int []b = new int[n];
        for(i=0;i<n;i++)
            b[i]=-1;
        while(n!=0){
            min = Integer.MAX_VALUE;
            num=0;
            for(i=0;i<a.length;i++)
            {
                if(a[i]<min && b[i]==-1)
                    min=a[i];
            }
            for(i=0;i<a.length;i++)
                if(a[i]==min && b[i]==-1)
                {
                    b[i]=a.length-n;
                    num++;
                }
            n-=num;
        }
        return b;
    }

00.02

老实说,到最后都没有看懂这道题的意思。

00.03

带障碍的迷宫问题。
时间问题,未写出。

输入:起点和终点的位置。
输出:如果能通,返回走了几步,不能的话,返回”no path”

00.04

给出所有n对括号的所有可能的组合。

输入:n
输出:所有可能的组合

import java.util.ArrayList;
 public static String[] Puzzle(int n) {
        // the Strings contain only parentheses
        ArrayList<String> res = new ArrayList<String>(); 
        String s="";
        dfs(n,n,s,res);
        String[] result = new String[res.size()];
        int i=0;
        for(String tmp:res){
            result[i++]=tmp;
            System.out.println(tmp);
    }
        System.out.println(result.length);
        return result;
    }

 private static void dfs(int l, int r, String item, ArrayList<String> res)  
 {  
     if(r<l)  
         return;  
     if(l==0 && r==0)  
     {  
         res.add(item);  
     }  
     if(l>0)  
         dfs(l-1,r,item+"(",res);  
     if(r>0)  
         dfs(l,r-1,item+")",res);  
 } 

就做出了01和04,还是比较遗憾的,因为第三题到后面我看懂了,但是前面消耗时间太长,没空写了。
而且前面的20分钟,提交答案的人太多,导致根本就不返回结果,让人心情也是比较烦躁,影响发挥,哼。

今天继续有比赛,进了复试的不用再做了,但是还是想看看,如果题一样,就努力做做2,3,解锁第二区,看看后面的部分。

不一样我就去做Kaggle了,复赛好像跟机器学习,大数据有关,得提前准备下了哟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yomo127

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值