阿里钉钉2020年后端研发实习生一面题目

一、算法题:

1、求两个整数的二进制形式中,不同的位数

思路:1)两个整数进行异或位运算,相同的位为0,不同位为1;

           2)把异或后的结果逐位取出来,判断二进制形式中1的个数。具体就是进行&1运算、如果结果为1,计数器加1;然后向右无符号移1位;

           3)重复&1、>>>1运算直到异或后的结果为0,输出计数器的值。

2、给定一个全是-1和1、长度为n的数组num,找出-1和1个数相同的长度最大的子序列

思路:问题的实质是求数组中连续子序列之和为0的最大长度,用一个二维数组res记录从元素i累加到元素j的结果,存入res[i][j]中,由题意可以初始化res[i][i]=num[i],计算上三角矩阵res[i][j]=res[i][j-1]+res[j][j]。把res的上三角部分计算完后,找出其中结果为0、坐标间距最大的元素即可。

3、把下面的Data对象序列化到内存中(C++)

struct Data{

  uint32_t a;

  float b;

扫描二维码关注公众号,回复: 11131026 查看本文章

  char* c;

}

提示:

int len = sizeof(uint32_t) + sizeof(float);

  if(data->c != null){

    len += strlen(data->c);

  }

  char *res = (char*)malloc(len);

二、提问

0、自我介绍

1、大小端

2、为什么要字节对齐

2、JVM加载.class文件的过程

3、Hadoop用于分布式协调的组件是什么?zookeeper用到哪些协议

4、Java的String类能继承吗?为什么

5、一个系统collapse的常见原因有哪些?如何调试?线上系统出bug如何调试?

6、除了打比赛以外,在学校有没有做过一些系统或者项目

7、Linux查看端口的命令、如何查看tcp/ip协议的端口号

发布了25 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/pgs1004151212/article/details/104868383