招银社招记录

最近陆陆续续面了几家公司,大厂和银行都有,大厂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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值