依图科技软件开发实习面经

依图是个不错的公司,除了上班累了点以外,各方面都很好,外地的实习生可以安排住宿,公司位置是长宁区的顶级写字楼,也是666,总之体验感很好了。就是有事儿,没能待得很长时间,提前结束了,很可惜。
依图面试都是直接上来撕代码的,问了问项目,就直接开始看你有没有开发潜质了。(我代码能力比较一般,所以大佬可以看题目,我的代码就随意了)
一面(视频面敲代码)

两个矩形,给出的left指左边的x坐标,top指顶边的y坐标,求两个矩形的交集。
struct Rect 
{
    Rect(int a,int b,int c,int d)
    {
        left=a;
        right=b;
        top=c;
        bottom=d;
    }
    int left;
    int right;
    int top;
    int bottom;
};

int rect_overlap(const Rect &r1, const Rect &r2)
{
    if(r2.left>r1.right || r2.right<r1.left || r2.top<r1.bottom || r2.bottom >r1.top)
    {
        return 0;
    }
    int rectleft,rectright,recttop,rectbottom;
    rectleft=max(r1.left,r2.left);
    recttop=min(r1.top,r2.top);
    rectright=min(r1.right,r2.right);
    rectbottom=max(r1.bottom,r2.bottom);
    int s;
    s=(recttop-rectbottom)*(rectright-rectleft);
    return s;
}

int main() 
{
    string words = "Hello, World!";
    cout << words << endl;
    Rect r1(1,2,2,1),r2(5,12,8,3);
    int ret=rect_overlap(r1,r2);
    cout<<ret<<endl;
     return 0;
}

二面(视频面敲代码)


找出和为0的三元组,比如{0,-1,-1,1,2,3,.....,},最后输出所有的三元组,比如{-1,-1,2},balabala
这是一个没有经过测试的代码,没来及了。
#include <iostream>
using namespace std;
void func(vector<int> data)
{
    sort(data.begin(),data.end());
    int len=data.size();
    for(int i=1;i<len-1;i++)
    {
        int sum=data[i];
        vector<int> resvec;
        for(int j=0,k=len-1;j!=i,k!=i;)
        {
            sum+=data[j]+data[k];
            if(sum<0)
            {
                sum-=data[j];
                j++;
            }
            else if(sum>0)
            {
                sum-=data[k];
                k--;
            }
            else
            {
                resvec.push_back(data[i]);
                resvec.push_back(data[j]);
                resvec.push_back(data[k]);
                for(auto c:resvec)
                {
                    cout<<c<<",";
                }
                cout<<endl;
            }
            while(1)
            {
                if(data[j]==data[j+1] && j+1<i)
                    j++;
                else
                    break;
            }
            while(1)
            {
                if(data[k]==data[k-1] && k-1>i)
                    k--;
                else
                    break;
            }
        }
    }
    while(1)
    {
        if(data[i]==data[i+1] && i<len-1)
            i++;
        else
            break;
    }
}

int main() 
{
    cout << words << endl;
    int a, b;
    while(cin>> a >> b)
        cout << "Your result is : "<< a + b << endl;
    return 0;
}




#依图科技##面经##C++工程师##校招#
全部评论
依图楼上是拼多多😂
点赞 回复
分享
发布于 2019-09-12 13:03
一面二面隔了多久
点赞 回复
分享
发布于 2019-09-16 13:59
阅文集团
校招火热招聘中
官网直投

相关推荐

5 15 评论
分享
牛客网
牛客企业服务