• 【笔记】简单难度面试题


    牛妹的礼物

    众所周知,牛妹有很多很多粉丝,粉丝送了很多很多礼物给牛妹,牛妹的礼物摆满了地板。地板是N×M的格子,每个格子有且只有一个礼物,牛妹已知每个礼物的体积。地板的坐标是左上角(1,1) 右下角(N, M)。牛妹只想要从屋子左上角走到右下角,每次走一步,每步只能向下走一步或者向右走一步或者向右下走一步,每次走过一个格子,拿起(并且必须拿上)这个格子上的礼物。
    牛妹想知道,她能走到最后拿起的所有礼物体积最小和是多少?

    输入
    [[1,2,3],[2,3,4]]
    输出
    7
    思路:dp,初始化d[0][i]和dp[i][0],然后将其他格子所代表的礼物数值转为最短路径(下、右、右下)的数值,随后输出最右下角数值即可。
    核心代码:

    dp[0][0]=presentVolumn[0][0];  
        //初始化第0行
        for(int i=1;i<w;++i)
            dp[0][i]=dp[0][i-1]+presentVolumn[0][i];
        //初始化第0列
        for(int i=1;i<h;++i)
            dp[i][0]=dp[i-1][0]+presentVolumn[i][0];
        //计算内部值
        for(int i=1;i<h;++i)
            for(int j=1;j<w;j++)
                dp[i][j]=min(dp[i-1][j-1],min(dp[i][j-1],dp[i-1][j]))+presentVolumn[i][j];
    

    牛妹的蛋糕

    众所周知,牛妹非常喜欢吃蛋糕。
    第一天牛妹吃掉蛋糕总数三分之一(向下取整)多一个,第二天又将剩下的蛋糕吃掉三分之一(向下取整)多一个,以后每天吃掉前一天剩下的三分之一(向下取整)多一个,到第n天准备吃的时候只剩下一个蛋糕。牛妹想知道第一天开始吃的时候蛋糕一共有多少呢?

    输入
    2
    输出
    3
    同样是dp,因为确定第n-1天剩余为1(第n天准备吃也就是还没吃)因此dp[n-1]=1;依次往前推
    第i天的剩余量:dp[i]=(dp[i-1]×2/3)-1,那么 我们从后往前推时,
    第i天的初始量:dp[i]=(dp[i+1]+1)×3/2;
    核心代码:

      int cakeNumber(int n){  
        if(n<0)   
            return 0;
        int dp[100];
                dp[n-1]=1;
            for(int i=n-2;i>=0;i--)
            {
                dp[i]=(dp[i+1]+1)*3/2;
            }
            return dp[0];
    

    神奇的数字

    在这个特殊的假期里,由于牛牛在家特别无聊,于是他发明了一个小游戏,游戏规则为:将字符串数字中为偶数位的数字进行翻转,将翻转后的结果进行输出。
    输入
    "1234"
    输出
    "1432"
    说明
    第2、4位为偶数,所以将其翻转后,得到 1432
    思路:分别从前往后找偶数以及从后往前找偶数,找到之后即对两者交换,并修改指针。
    核心代码:

      //已知数字串string number
      int len=number.size();
        int i=0,j=len-1;
        while(i<j)
        {
            while(i<j&&(number[i]-'0')&1)
                i++;
            while(i<j&&(number[j]-'0')&1)
                j--;
            if(i<j)
                swap(number[i++],number[j--]);
        }
        return number;
    }
  • 相关阅读:
    每天备份数据库中的表
    IE9相容問題-childNodes行為改變
    查找含有某字符的存儲過程
    弹出SQL报表的时候,出现空白的解决方法
    转:Page.ClientScript.RegisterStartupScript(me.GetType(),"script1","<script>alert('111');</script>")
    java核心技术记录之java术语
    Head First 设计模式笔记:单例模式
    多对一关系实体中,多的一方所关联的一实体的实例化问题
    ajax请求返回json数据弹出下载框的解决方法
    java核心技术记录
  • 原文地址:https://www.cnblogs.com/acmer-hmin/p/13496013.html
Copyright © 2020-2023  润新知