2019届校招腾讯面试经历---iOS/macOS开发实习


一、介绍一下你自己
二、说一下你做的项目

0、项目的设计。
1、项目的精华点。
2、你做该项目遇到什么技术难点。

三、你看过什么iOS书籍

(回答的:《iOS性能优化》、《iOS数据库高级编程》、《iOS高级编程》、《Effective Objective-C》、《iOS开发》、《Objective-C 内存管理》、《Objective-C 基础编程》等)
四、

四.iOS内存管理

0、iOS有哪几种内存管理机制(回答的GC、ARC、MRC)
1、ARC和MRC的区别
2、谈谈对weak和strong的理解
3、 对一个引用计数为0的对象发送了一个消息,会产生程序崩溃,怎么样避免这种情况的出现。(回答的重写)

五、import和include

0、import和include的区别
1、怎么使include与import作用相同?
(回答的是用懒加载)
2、说一下怎么用懒加载实现.的思路

六、copy和strong

0、对copy、strong的理解
1、对NSMutableArray copy后的对象,是可变的还是不可变的?
2、为什么是可变的

七、block块。

0、能不能修改外部变量?
1、为什么不能?

八、OC/C/C++

0、OC/C/C++的异同。
1、OC和c++做处理时哪个会更快?(回答的c++快)
2、分析下为什么c++会更快??(回答的c++是静态编译型语言,oc是动态语言中间有个运行时的开销)

九、消息转发。


附:(笔试题)

题目描述:

小Q的公司最近接到m个任务,第i个任务需要xi的时间去完成,难度等级为yi。小Q拥有n台机器,每台机器最长工作时间zi,机器等级wi。
对于一个任务,它只能交由一台机器来完成,如果安排给它的机器的最长工作时间小于任务需要的时间,则不能完成,如果完成这个任务将获得200*xi+3*yi的收益。
对于一台机器,它一天只能完成一个任务,如果它的机器等级小于安排给它的任务难度等级,则不能完成。
小Q想在今天尽可能的去完成任务,即完成的任务数量最大。如果有多种安排方案,小Q还想找到收益最大的那个方案。
输入描述:
输入包括N+M+1行,
输入的第一行为两个正整数n和m(1<=n,m<=100000),表示机器的数量和任务的数量。
接下来n行,每行两个整数xi和yi(0< xi<1000,0<=yi<=100),表示每台机器的最大工作时间和机器等级。
接下来m行,每行两个整数zi和wi(0< zi<1000,0<=wi<=100),表示每个任务需要的完成时间和任务的难度等级。
输出描述:
输出两个正整数,分别表示最大能完成的任务数量和获取的收益。
示例1:
输入
[plain] view plain copy
1 2
100 3
100 2
100 1
输出
[plain] view plain copy
1 20006

代码实现
//思路:贪心算法
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct A
{   int x;
    int y;
}t[100010], m[100010];
bool cmp(A a, A b)
{
    if(a.x != b.x)return a.x > b.x;
    return a.y > b.y;
}
int main()
{
    int N, M;
    scanf("%d %d", &N, &M);
    for(int i = 0; i < N; i++)
        scanf("%d %d", &m[i].x, &m[i].y);
    for(int j = 0; j < M; j++)
        scanf("%d %d", &t[j].x, &t[j].y);
    sort(t, t + M, cmp);
    sort(m, m + N, cmp);
    long long sum = 0;
    int count = 0;
    int mark[100010]={0};
    int j = 0;
    for(int i = 0; i < M; i++)
    {
        while(j < N && m[j].x >= t[i].x)
        {
            mark[m[j].y]++;
            j++;
        }
        for(int k = t[i].y; k <= 100; k++)
        {
            if(mark[k])
            {
                mark[k]--;
                count++;
                sum += (long long)(200 * t[i].x + 3 * t[i].y);
                break;
            }
        }
    }
    printf("%d %lld\n", count, sum);
    return 0;
}

备注:

记得大二的时候,参加腾讯校招,投递完简历,连笔试的机会都没有,今年很有幸能够通过笔试,参加面试。
腾讯在校招这方面其实更注重的是一个人的基础,思考问题的角度和深度。并不是你做过多少项目。拥有多少项目经验。
不论这次通过还是不通过,都下定决心去准备考研了。中国海洋大学!
后面的时间,博客更新的速度就不会有那么频了。(当然还是争取年底,CSDN排名进前2万)
借这次机会感谢那些关注我博客的每一位朋友,谢谢你们。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 MongoDB 启动时出现的错误,可以尝试以下解决方案: 1. 检查配置文件路径:确保您提供的配置文件路径正确无误,并且配置文件存在于指定的位置。在您的命令中,确认 `~/softconfig/mongodb-macos-x86_64-6.0.8/mongodb.conf` 是否是正确的配置文件路径。 2. 检查配置文件内容:打开配置文件 `mongodb.conf`,确保其中的配置选项正确设置。特别注意以下几个常见的配置项: - `bindIp`:MongoDB 绑定的 IP 地址,可以尝试将其设置为 `0.0.0.0`,以允许所有 IP 地址连接到 MongoDB。 - `port`:MongoDB 监听的端口号,默认是 27017,确保该端口没有被其他进程占用。 - `dbpath`:MongoDB 数据库文件存储路径,确保该路径存在并且有正确的读写权限。 3. 检查日志文件:运行命令时,观察控制台输出的错误信息。如果有提供日志文件路径,可以查看相关日志文件,以获取更详细的错误信息。通常,MongoDB 的日志文件位于 `/var/log/mongodb/` 目录下。 4. 检查数据库文件权限:确保 MongoDB 数据库文件所在的目录具有正确的读写权限。可以尝试使用管理员权限运行启动命令。 5. 检查 MongoDB 版本和操作系统兼容性:确保您所使用的 MongoDB 版本与您的操作系统兼容。如果您的操作系统是最新版本,但 MongoDB 版本较旧,可能需要升级 MongoDB。 如果尝试了以上解决方案后仍然无法解决问题,建议您查阅 MongoDB 的官方文档、社区论坛或向 MongoDB 开发人员社区求助,以获得更具体的问题解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值