准备招银社招记录
最近陆陆续续面了几家公司,大厂和银行都有,大厂2面3面挂的都有,现在真的比较难,总结下来面试技巧和心理状态需要调整。最近开始准备招银的社招,记录一下从笔试开始的轨迹。
1.算法准备(动态更新)
今天看到一个招银9.2笔试题,网上的解法都不太好,我自己写了一个解法
题目
有n个人,从1-4开始报数,逢4出局,然后后面的人继续从1开始报数,问最后谁还是队伍中。
public int circle4(int n){
List<Integer> list=new ArrayList<>();
for(int i=1;i<=n;j++){
list.add(i);
}
int idx=0;
while(list.size()>1){
int len=list.size();
if(idx+3<len){
idx+=3;
list.remove(idx);
idx=idx%(len-1);
}else{
idx=(idx+3)%len;
list.remove(idx);
idx=idx%(len-1);
}
}
return list.get(0);
}
题目
岛上有250个人,其中1个被魔鬼诅咒了,4小时找不出来则over,4小时内找出可救活;有8个白面包(足够大且不可分割),其中被诅咒的人咬一口白面包之后白面包4小时内会变黑,自定义吃面包规则,输入面包变黑序列号如1,3,4,6,7,输出被诅咒的人的编号。
public class CurseSomeone {
public static void main(String[] args){
CurseSomeone f=new CurseSomeone();
System.out.println(f.findSomeOne(new int[]{1,3,4,6,7}));
}
public int findSomeOne(int[] arr){
int peoplel=1,peopler=250;
int i=1;
int k=0;
while(i<=8){
//面包给1组
int mid=(peopler-peoplel)/2+peoplel;
if(k<arr.length && i==arr[k]){
peopler=mid;
k++;
}else{
peoplel=mid+1;
}
i++;
}
return peoplel;
}
}
题目
转换人民币
public class MoneyTrans{
String[] a={"元","十","百","千","万"};
String[] b={"分","角"};
String[] c={"一","二","三","四","五","六","七","八","九"};
public String moneyTrans(String money){
String[] moneys=money.split("\\.");
StringBuffer sb1=new StringBuffer();
int number=Integer.parseInt(moneys[0]);
for(int i=0;i<moneys[0].length();i++){
int num=number%10;
number/=10;
sb1.append(a[i]).append(c[num-1]);
}
StringBuffer sb2=new StringBuffer();
int number2=Integer.parseInt(moneys[1]);
for(int i=0;i<moneys[1].length();i++){
int num=number2%10;
number2/=10;
sb2.append(b[i]).append(c[num-1]);
}
return sb1.reverse().toString()+sb2.reverse();
}
public static void main(String[] args){
MoneyTrans f=new MoneyTrans();
System,out.println(f.moneyTrans("1234.45"));
}
}
待更新内容(迁移到算法专题):
1.深浅拷贝
2.线程死锁
3.多线程实现
4.单例模式
笔试内容:
选择题部分:
1)程序判断
2)正则匹配符号优先级
3)threadlocal
4)kafka
其他不记得了
算法题
1)环形链表复原:给定链表[1,2,3]及循环次数3,组成新链表[1,2,3,1,2,3,1,2,3]
2)单词统计:两个句子“tom love kitty”和"Kitty Love tom"所有单词不区分大小写,统计两个字符串的单词及个数是否一致
总结:笔试中规中矩,编程题难度不高,笔试题容易因粗心错。
静待结果,许愿。
9.26一面(两个面试官)
1.一个关于分布式锁迁移的场景题
2.消息堵塞的排查思路
3.乐观锁与分布式锁的运用、问题及解决思路(问的细)
4.skywalking的原理(忘了,直接说简历上忘了删)
5.Java文件编译为二进制文件经历了哪些过程
还有一些问题记不清了,时间到就结束了
10.10二面(两个面试官一个hr)
问的范围挺广,开始几个八股文:
1.filter和拦截器的区别
2.不使用AOP的情况下,解决请求响应入参和出参的记录问题
3.JVM调优及排查思路
4.慢sql调优及排查思路
5.生产问题排查
等等
hr:问了个人期望,技术管理和项目管理相关的问题,还问了如何快速接手一个新项目的思路,期望薪资,等等。
总结:一面总在技术深度,二面重在技术广度,hr面匹配度
已提交资料。
已OFFER