2019春招-腾讯常规批

1.数字拆分

2.村庄对水果的需求

2.1 解题思路

从前往后遍历,依次将前面的水果运输到邻近村庄。一次遍历即可。

  • ans表示当前村庄需要买卖的水果数量,
  • cost表示总的运费,abs(ans)表示当前村庄水果运走需要的运费。

2.2 代码

#include<iostream>
#include<vector>
using namespace std;

int main(){
    int n;
    cin >> n;

    vector<int> data(n, 0);
    for (int i = 0; i < n; i++)
        cin >> data[i];
    long long ans = 0;
    long long cost = 0;
    for(auto num:data){
        ans += num;
        cost += abs(ans);
    }
    cout << cost << endl;

    return 0;
}

3.小Q减数字

3.1 解题思路

题意依次输出数组中最小元素、倒数第二大元素和最小元素的差值、倒数第三大元素和倒数第二大元素的差值......当数组中元素都为0时输出0。

  • 首先对数组进行排序;
  • 去除重复元素;
  • 因为第一个要输出的是最小元素,后面输出的是相邻元素的差值,那么只要在数组前面补一个0,然后依次输出相邻元素的差值即可;
  • 如果k大于数组的长度,输出0补齐即可;

3.2 代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    int n,k;
    cin >> n >> k;
    vector<int> data(n+1, 0);
    for (int i = 1; i <= n; i++)
        cin >> data[i];
    sort(data.begin(), data.end());
    data.erase(unique(data.begin(), data.end()),data.end());

    for(int i=1;i<k+1;i++){
        if(i<data.size()) cout << data[i] - data[i-1] << endl;
        else cout << "0" << endl;
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有些人需要放在心里缅怀 比如前任 有些感情需要当断则断 比如前任
    国服第一孙尚香阅读 131评论 0 0
  • 今天是《断舍离》第十八天,阅读内容是第四章的“一切从扔东西开始”,今天特别关注“在把自己用不着的东西送给有需要的人...
    祖迩阅读 377评论 0 2
  • 明月孤高照, 花间清风缭, 红颜一叹泪空了, 空了,空了, 花落知多少。 红尘梦断了, 岁月催人老, 杜康无情人醉...
    一念飘雪阅读 362评论 0 2
  • 之前开发一个后台管理系统,里面用到了Vue和Element-UI这个组件库,遇到一个挺有意思的问题,和大家分享一下...
    文兴阅读 30,349评论 10 28