2018春招笔试大数据方向C++题解

编程题1:
1.给予一个数字n(n≤1000000),然后输入n个数据(1≤数据≤1000000),寻找N个数中唯一一个不同的数字,返回该数字的位置,
思路:一开始想设个1000000大小的数组,然后发现数组太大了... ̄□ ̄||
突然就想到可以在输入数据的时候就进行比较,为了发现不同的两个数字中哪个是正常的数字,所以需要读入第三个数据,需要的数组大小为3,方便起见我就直接设为10了。
基本思路是当 i != i-1时,读入下一个元素并记录下一个 i 到sign中,然后分情况讨论输出 i 或 i -1 或 i - 2,其中 i 的情况是不同的数位于末尾,i -1的情况读入的第三个数与第二个数不同,i - 2的情况是读入的第三个数与第二个数相同
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int w[10];
    int sign = 0, flag = 0;
    for (int i = 1; i <= n; i++)
    {
        cin >> w[i%3];
        sign = i;
        if (flag == 1) break;
        if ((w[i%3] != w[(i-1)%3])&(i>1)) flag=1;
    }
    if ((sign == n)&(w[sign % 3] != w[(sign - 1) % 3]))
    {
        cout << sign;
    }
    else if (w[sign%3] == w[(sign-1)%3])
    {
        cout << sign-2;
    }
    else cout << sign - 1;
}
编程题2
有三个整数X,Y,Z,要求进行若干次操作使X,Y,Z相等,操作有两种
1.从X,Y,Z中选择两个数都加1
2.从X,Y,Z中选择一个数加2
求最少需要多少次操作
思路:我把三个数按从大到小的排序,方便后来的计算,a是最大的数,b和c有两种情况,相差为奇数时可以通过(b-c)/2次操作变成b,b-1,然后只要a-b+2次操作就能得到相等,相差为偶数时通过(b-c)/2次操作变成b,b,然后再a-b次操作就相等了
#include <iostream>
using namespace std;
void change(int *a, int *b)
{
    int m;
    if (*a < *b)
    {
        m = *a;
        *a = *b;
        *b = m;
    }
}
int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    change(&a, &b);
    change(&a, &c);
    change(&b, &c);
    int i = 0;
    if (b == c)
    {
        cout << a - b;
    }
    else if ((b - c)%2== 1)
    {
        cout << a - b + 2+(b-c)/2;
    }
    else if ((b - c) % 2 == 0)
    {
        cout << (b - c) / 2 + a - b;
    }
    return 0;
}
大三狗第一次做笔试,选择题大半都不会,编程走了大半天弯路才回来,不知道两个AC能不能进面试 ̄□ ̄||#春招##C/C++##笔试题目#
全部评论

相关推荐

吾族血脉,自吾始立铁律:凡我子孙,胆敢研习计算机之术者,当受七窍流血之刑!若见Python之书,必遭雷殛;若触Java代码,定为不孝!键盘鼠标准入族谱秽物录,显示器乃摄魂邪镜祖祠前当立戒碑:"二进制者,断子绝孙之道也!"算法者,乱我族心智之毒也!数据结构,毁我门风之刃也!倘有逆子偷装&nbsp;vscode,即按祖规捆于祠堂梁柱,令其DEBUG至死不得解脱!今颁天条三则:壹)三代血亲不得报考计算机系违者削去辈分,永世称码奴贰)族中幼童须背《戒算经》"if-else咒,switch符,皆是断头术"叁)凡见子侄讨论编程者须即刻砸其电脑,焚其书籍泼黑狗血于键盘之上!太祖母口谕:"吾宁要文盲孙,不要程序员!"尔...
好吃的薯饼:姐妹这不是我们计算机系吧,我们计算机系的都在言情小说里当黑客大佬,各种竞赛拿奖拿到手软,公司系统道路监控随便入侵。身体线条非常优美,挺拔的站姿十分端正,给人以强壮有内涵的感觉。脸庞轮廓深刻,五官分明透露着对太阳底下最光辉的职业的向往和坚定,尤其是那双深邃的眼睛,写满了对代码和计算机系统的热情和无限的活力。我们计算机系是天之骄子、明日之星,人手一个博士学位不然高中电脑老师都当不上。组会的时候,面对导师和同事的疑难问题,也能够回答自如。我们总是把高高的发际线当做荣耀的象征。妈咪这不素我们计算机系吧,集美集帅怎么只会写hello world?
点赞 评论 收藏
分享
评论
1
16
分享

创作者周榜

更多
牛客网
牛客企业服务