(三面挂)有了解问境科技这个公司的吗?
#问境科技#红杉联合资本联合招聘,现场一面当面写基础题,二面手撕算法➕基础后,三面副总裁面本来以为聊聊人生居然又手撕算法??我人都傻了😅
============更新=============
国庆后主动联系hr得知三面被挂,挺难受的
二三面都是打电话用meeting会议做的算法题
(要分析时间和空间复杂度,以及优化后的算法,再介绍时空复杂度)
一面基础题:
/**
* 从三个修正方法中选择使得子线程停止
* 多线程对共享变量的读取
* 主线程更改了stop的值并没有将其刷新到主内存中,只在工作内存中更改
* 此时线程thread没有读取到最新的值,即发生了脏读
* <p>
* <p>
* 在线程thread的while循环中进行线程休眠其实作用是将线程进行上下文切换
* 线程上下文切换会从主内存中读取一遍最新的变量值
* <p>
* System.out.println()底层是加了synchronized关键字的,加了同步关键字也会从主内存中读一遍最新值
* <p>
* <p>
* 最后一种方式是对共享变量加volatile关键字
*/
public class ThreadTest {
private /*修正方法3: volatile*/ static boolean stop = false;
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (!stop) {
//修正方法1: pause(1);
//修正方法2: System.out.println(stop);
int a = 1;
}
}
});
thread.start();
pause(100);
stop = true;
}
public static void pause(long time) {
try {
TimeUnit.MILLISECONDS.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} 这道不会说没关系,一面面试官出的
/** * 源码级解释 */
public class Case2 {
public String transfer(int a){
return String.valueOf(a);//Integer.toString(a)
}
} 二面 算法:
1.连续子数组最大和
2.合并两个有序数组题
基础:
3.hashmap的put过程
三面算法:
1.子数组变形题
/** * 给定一个数组,类似【8,13,-50,1,16,0,-33,180,-380,11】 * 写一个函数,以给定数组作为输入,返回 Max(Sum(sub1)+ Sum(sub2)) */2.三面还会考写sql,题目如下,(有些紧张,答案是当场写的,不是很对)
-- 给定一个数据库表student_score, 字段定义为:学生id(int),学生姓名(String),考试科目(String),考试成绩(int),所属学期(String) -- 其中,科目的取值范围为:数学,英语,语文 -- 写一个sql,找到所有一年级的小朋友当中,过去两个学期(一年级上学期、一年级下学期)当中, -- 所有单科成绩都大于90分,且每学期总成绩大于280分的学生 SELECT name, sum(score) scoreSum FROM student_score WHERE term in ( '一年级上学期','一年级下学期') and name in (select name from (SELECT name,count(1) count FROM student_score WHERE term in( '一年级上学期','一年级下学期') and score > 90 group by name having count =6) a ) group by name,term having scoreSum > 280
OPPO公司福利 1202人发布
