2023 大疆笔试题 0806

笔试时间:2023年8月6日 秋招

题目描述

给定一个二维数组cropField,其中每个元素代表农田中对应位置的作物产量,每个位置上的作物经过灌溉可使产量加1倍(即对应位置作物产量数*2),重复灌溉同一位置不能多次加倍。现在需要修建 2 条灌溉渠道,1条从上到下灌溉,1条从左到右灌溉。请确定哪行和哪列应该被落溉,使得农田中作物的总产量最大化,并输出最大化的总产量。

输入描述

int[][]cropField ={

{2,3,1,4}

{1,2,0,3}

{4,2,1,7}

{3,1,4,2}};

输出描述

maxTotalYield=63

样例输入

4 4

2 3 1 4

1 2 0 3

4 2 1 7

3 1 4 2

样例输出

63

提示

注意本考试平台输入格式要求:

二位整型数组

数据格式:第一行有两个空格分隔的数字m和n,m为行数,n为列数,接下来m行,每行为n个以空格分隔的整型数字

参考题解

枚举行列的组合。

C++:

#include <iostream>
#include <vector>

int solution(std::vector<std::vector<int>>& cropField) {
    int n = cropField.size();
    int m = cropField[0].size();

    std::vector<int> maxRows(n, 0);
    std::vector<int> maxCols(m, 0);

    int sum = 0;

    // 找最大行
    for (int i = 0; i < n; i++) {
        int curRow = 0;
        for (int j = 0; j < m; j++) {
            curRow += cropField[i][j];
        }
        maxRows[i] = curRow;
        sum += curRow;
    }

    // 找最大列
    for (int j = 0; j < m; j++) {
        int curCol = 0;
        for (int i = 0; i < n; i++) {
            curCol += cropField[i][j];
        }
        maxCols[j] = curCol;
    }

    int res = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            // 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2023 秋招笔试题汇总解析 文章被收录于专栏

2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

全部评论

相关推荐

Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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