58同城笔试
- 运算符优先级:num++%5是多少,单目乘除位关系,逻辑三目后赋值
- 排序的稳定性:
- IP协议:
- Java的ArrayList和LinkedList的区别:
- 前序,中序求后序遍历
- kill某个pid的进程:kill -9 pid或者kill -15 pid,可以通过kill -l来看kill的各种信号
- Java的try。。。catch。。。finally,finally无论如何都会执行,当 catch 体里有 return,finally 体的代码块将在 catch 执行 return 之前被执行,如果说finally中有return,那么catch的return将不执行,更多的大家可以参考大佬链接
- 1,2,6,x,1806,则x是多少:找规律,42
- 二分查找的查找某个数字的比较次数
- 在一个类里面private static final String xx,在主函数中调用会打印什么?
- 中缀表达式转成后缀表达式???
- 进程管理命令:pstree,ps,kill,而fdisk是磁盘相关的命令
- 3个骰子,掷出几点的概率最大:10点或者11点
- 代码:01矩阵找疫情聚集点,二叉树层序遍历,查找缺失的最小正整数
- 多选题:hive的外部表的内部表
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);
区别:
内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);
删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
元数据就是表结构,表参数那些数据,数据文件才是真正的有效数据
感觉考了好多Java的知识,不大行
有赞一面–电话面
有一说一面试的时候最好能有所扩展的讲,并且结合一些小例子来讲,调整自己的思路,也能更好的组织语言
- 进程和线程的区别,线程切换为什么代价比进程小,线程为什么不稳定
- TCP和UDP的区别
- 快速排序的过程,时间复杂度和空间复杂度
- 快速幂知道怎么做吗?用位运算,除了用位运算还能用什么,链接,其实和位运算的思想是一样的
- MySQL的索引,最左前缀原则,怎么优化sql
- SQL:怎么实现查出比前一天温度高的日期
SELECT B.ID from Weather AS A INNER JOIN Weather AS B ON A.Temperature<B.Temperature and DATEDIFF(DAY,A.starttime,B.starttime) = 1
- python的多线程与多进程
- 为什么多线程无法调用多核还要用,因为IO频繁型程序可以用
- 协程怎么实现的
- python内存管理:垃圾回收,小整数和小字符串
- 迭代器和生成器的区别:
- 单例模式的实现
- django和flask,django响应前端请求的流程是怎样的
小米一面,视频面30分钟
- python的异步是怎么样的
- django的处理流程是怎么样的
- git的命令
- 手撕二叉平衡树的判断
- 面试官很帅,很爱笑
37互娱
- Linux怎么启动的,Linux的进程怎么启动的
- 怎么让一个程序开机自动执行,profile
- 怎么看进程状态,怎么看端口状态,nginx和apache的区别
- TCP为什么要三次握手
- 每次握手的状态分别是什么
- 怎么设置超时计时器,时间大概是多少
- python的内存管理,垃圾回收
- python怎么把代码变成字节码,链接,gcc怎么讲代码编译成可执行文件
- 要新学一门语言,你会怎么学习
外观数列
链接:题目链接
题目描述
给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
注意:整数序列中的每一项将表示为一个字符串。
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:
-
1
-
11
-
21
-
1211
-
111221
第一项是数字 1
描述前一项,这个数是 1 即 “一个 1 ”,记作 11
描述前一项,这个数是 11 即 “两个 1 ” ,记作 21
描述前一项,这个数是 21 即 “一个 2 一个 1 ” ,记作 1211
描述前一项,这个数是 1211 即 “一个 1 一个 2 两个 1 ” ,记作 111221
解题思路—普通逻辑
用个二重循环就行了
代码实现
class Solution:
def countAndSay(self, n: int) -> str:
res = '1'
# 注意循环的次数,只需要n-1就行了
for _ in range(n-1): # 控制循环次数
i, tmp = 0, ''
for j, c in enumerate(res):
if c != res[i]:
tmp += str(j-i) + res[i]
i = j
res = tmp + str(len(res) - i) + res[-1]
return res