发水果

发水果

http://www.nowcoder.com/questionTerminal/4660c623fb5e4507af23593d3b6ff08c

循环里面套循环,注意循环条件和终止条件即可:

//
// Created by jt on 2020/8/21.
//
#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<vector<int> > vec(n, vector<int>(m));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) { cin >> vec[i][j]; }
    }
    vector<int> res;
    // top必须小于等于bottom,left必须小于等于right
    int top = 0, bottom = n - 1, left = 0, right = m - 1;
    while (true) {
        // 从上到下
        for (int i = top; i <= bottom; ++i) res.push_back(vec[i][left]);
        if (++left > right) break;
        // 从左到右
        for (int i = left; i <= right; ++i) res.push_back(vec[bottom][i]);
        if (--bottom < top) break;
        // 从下到上
        for (int i = bottom; i >= top; --i) res.push_back(vec[i][right]);
        if (--right < left) break;
        // 从右到左
        for (int i = right; i >= left; --i) res.push_back(vec[top][i]);
        if (++top > bottom) break;
    }
    for (int i = 0; i < n*m; ++i) {
        cout << res[i];
        if (i != n*m - 1) cout << ' ';
        else cout << endl;
    }
}
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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