zoukankan      html  css  js  c++  java
  • 京东2015在线笔试 (1)

    题目

    这是京东商城2015年,研发类在线笔试程序设计第一题,题目描述如下:

    公司年终奖送礼品,小明要领取最多的礼物。领取方式如下:公司礼品放在一个6*6的二维矩阵式宫格中,每人从左上角为起点出发,每走一步可取走该格内的礼物,走到右下角位置,每次只能向右或向下走一步!

    给定测试数据如下:

    输入:一个6*6的矩阵

    200 120  400 150 180 300  
    150  250  360  120  200  130   
    350  300  250  100  500  260 
    100  150  260  320  100  150 
    500  130  260  100  200  170  
    160  100  250  200  600  200 

    输出: 3100

    分析

    这是类似于LeetCode中55 JumpGame的一道题目,算法思想即是动态规划;

    代码

    #include <iostream>
    #include <cstdlib>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int getMax(const vector<vector<int> > &v)
    {
        if (v.empty())
            return 0;
        int m = v.size();
        int n = v[0].size();
        vector<vector<int> > maxV(m,vector<int>(n,0));
        //处理首行
        maxV[0][0] = v[0][0];
        for (int j = 1; j < n; j++)
            maxV[0][j] = maxV[0][j-1] + v[0][j];
    
        //处理首列
        for (int i = 1; i < m; i++)
            maxV[i][0] = maxV[i-1][0] + v[i][0];
    
        for (int i = 1; i < m; i++)
        {
            for (int j = 1; j < n; j++)
            {
                maxV[i][j] = max(maxV[i][j - 1], maxV[i - 1][j]) + v[i][j];
            }//for
        }//for
        return maxV[m-1][n-1];
    }
    int main()
    {
        vector<vector<int> > v = { { 200, 120, 400, 150, 180, 300 }, { 150, 250, 360, 120, 200, 130 }, {350,300,250,100,500,260},
        { 100, 150, 260, 320, 100, 150 }, { 500, 130, 260, 100, 200, 170 }, {160,100,250,200,600,200} };
    
        //vector<vector<int> > v(6, vector<int>(6, 0));
        /*int temp;
        for (int i = 0; i < 6; i++)
        {
            for (int j = 0; j < 6; j++)
            {
                cin >> temp;
                v[i][j] = temp;
            }
        }*/
    
    
        cout << getMax(v) << endl;
    
        system("pause");
        return 0;
    }

    忧伤的是,京东的OJ结果竟然是 80% 的正确率,并没有完全AC~~~

    看了多遍,百思不得其解~~~

    有大牛知道为什么的话,烦请告知! 谢谢~

    注:题目是听朋友描述,记录下来,日后参考!

  • 相关阅读:
    正则匹配整数或小数
    文本超出点点点
    订单页面布局
    数据库连接池 maxActive,maxIdle,maxWait参数
    dll静态调用和动态调用
    Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection
    sql server调优
    AdPlus
    010 Editor
    WinDBG相关
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214845.html
Copyright © 2011-2022 走看看