当前位置: 首页 > 面试经验 >

2023,8.14 【4399Java开发】笔试

优质
小牛编辑
86浏览
2023-08-15

2023,8.14 【4399Java开发】笔试

10道选择题,三道简答,三道编程,还有两道论述。做的人麻了。。。

简答:

1.MySQL的事务隔离级别?事务并发时存在的问题

2.描述一个高并发任务调度系统的架构设计。包括系统组成部分、各组件的功能、组件间的通信方式。(2)设计适合该系统的数据库模型(3)高并发情况下,有哪些优化策略来扩展系统的并发能力 。

3.说出4种,实现web流量的负载均衡的方式

编程

4399 应该时人工判题吧,也没有办法提交看过多少。但不用写输入输出了,都是过了用例。

T1:使用滑动数组,逆向思维求解,使用滑动窗口找到超过重复类型的重复子数组个数m。最后结果就是n+(n-1)+...+1-m;

 public static void main(String[] args) {
        char[] s={'A','B','C','B'};
        int K=1;
        int m=0;
        int res=0;
        //初始化res
        for(int i=0;i<=s.length;i++){
            res+=i;
        }
        Map<Character,Integer> window=new HashMap<>();
        //构建滑动窗口,滑动区间[left,right)
        int left=0,right=0;
        while (right < s.length) {
            // c 是将移入窗口的字符
            char c = s[right];
            // 增大窗口
            right++;
            // 进行窗口内数据的更新
            window.put(c, window.getOrDefault(c, 0) + 1);
            //判断是否需要缩小窗口
            while (window.get(c)>K){
                char d = s[left];
                // 缩小窗口
                left++;
                m++;
                // 进行窗口内数据的一系列更新
                window.put(d, window.get(d) - 1);
            }
        }
       System.out.println("有趣的排列组合数有:"+res+"-"+m+"= "+(res-m));
    }

T2:大数相减,样例过了

public class BigDataCompute {
    public static void main(String[] args) {
        String a = "123";
        String b = "30";
        subtraction(a, b);

    }

    public static void subtraction(String a, String b) {
        //翻转被减数和减数,从低位开始计算
        char[] numA = new StringBuilder(a).reverse().toString().toCharArray();
        char[] numB = new StringBuilder(b).reverse().toString().toCharArray();
        int[] result = new int[numA.length];
        for (int i = 0; i < result.length; i++) {
            int intA = i < numA.length ? numA[i] - '0' : 0;
            int intB = i < numB.length ? numB[i] - '0' : 0;
            result[i] = intA - intB;
        }
        //借位逻辑如果结果指针中存在负数,说明该位置向前借位了,处理借位
        for (int i = 0; i < result.length; i++) {
            if (result[i] < 0) {
                result[i + 1] -= 1;
                result[i] += 10;
            }
        }
        StringBuilder sbr = new StringBuilder();
        boolean bool = true;
        for (int i = result.length - 1; i >= 0; i--) {
            if (result[i] == 0 && bool) {
			continue;
			}else{
				bool=false;
			}
            sbr.append(result[i]);
        }
        System.out.println(sbr);
    }
}

T3:力扣原题:连续子数组和,放一个官方题解:

还有两到技术论述:

1 假如你的某个方案得到了上司的认可,但是推进过程当中来自组员的阻力比较大,他们的积极性比较低,你觉得原因会是什么?你会通过什么样的方式去获得组员的认可?

2.你是否曾经面对过非常复杂的问题或任务?你又是如何成功地解决它的?

#23届找工作求助阵地##秋招##4399秋招#
 类似资料: