(三面挂)有了解问境科技这个公司的吗?
#问境科技#红杉联合资本联合招聘,现场一面当面写基础题,二面手撕算法➕基础后,三面副总裁面本来以为聊聊人生居然又手撕算法??我人都傻了😅
============更新=============
国庆后主动联系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