首页 > 蓝湖 牛客专场 后端笔试3.1 残页版
头像
sick白牧
发布于 2021-07-21 12:17
+ 关注

蓝湖 牛客专场 后端笔试3.1 残页版

选择题(20道单选,大多数是4个选项):
1. 假如要使udp发挥像tcp一样的功能,应该在哪一层做修改。
2. if(a<=0) a++;else a--;print("%d",a); a为全局变量初始为0,将以上代码同时启动两个等价的线程,请问不可能有以下哪种输出结果?A. 0 1 B .1 0 C. 1 2 D. 2 2
3. 基地址是1000,给一个6行5列的数组,元素长度为2,求第三行第四列元素的地址。(不存在第0行或第0列,从1开始计算)
4. 有一个成绩数据表t,(personId ,course,score),求均分大于90的学生的id。A . select personId from t where avg(score)>90 group by (personId);B .select personId from t  group by (personId) having avg(score)>90;
5.一个数组,依次按排序二叉树插入顺序插入,求检索x需要几层?
6. 数据库第二范式是什么?
7. 局域网访问www.nowcoder.com,不包含下列哪个协议?tcp,dns,ICMP,arp。
8. 生产者消费者问题。给两个进程,问会不会发生死锁/结果正确?。
9. 有甲乙两台主机,乙收到来自甲的tcp包序号为x,确认号为y。字节长度为100,求立即发送给甲的序号/确认号。
10. void fun(int n, int m,int o){
if(n==0) 
    print(%d,%d,m,o);
else {
    fun(n-1,m+1,o);
    fun(n-1,m,o-1);
    }
}
求算法复杂度。
11. 合并m个长度为n的有序链表,求算法复杂度。
12. 有数组[3,9,7,5,1,3,1,2,7]求下标绝对不连续的子序列的最大和?答案是9+5+3+7=24?
13. 进程和线程的区别以下哪个是正确的?A. 线程可以共享内存,进程不可以。B. 线程可以互相通信,进程不可以。
14. b树和b+树区别不包括下面哪个?A. 顺序检索 B.随机检索
15. 一个栈的入栈顺序是(1,2,3...n),目前出栈了元素3,则下一个出栈元素有多少种可能?答案是n-2?
16. 循环队列队首指针是head,队尾指针是tail,队首指针不含数据,队的长度为N,求有效队列长度?
算法题:
1.输入一个数组a和一个int值sum,求数组的子序列数的和等于sum的方案数。只要下标有不同就认为是不同方案。(过了80%)

import java.util.Scanner;
import java.util.*;
public class Main {
    private static Map<String,Integer> map = new HashMap<>();
    private static int[] a;
    public static void main(String[] args) {
        map = new HashMap<>();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int sum = in.nextInt();
        a = new int[n];
        for(int i=0;i<n;i++){
            a[i] = in.nextInt();
        }
        System.out.println(fun(0,sum));
    }
    static int fun(int t,int sum){
        if(map.containsKey(t+" "+sum))
            return map.get(t+" "+sum);
        if(t==a.length-1){
            if(a[t]==sum||sum==0)
                return 1;
            else
                return 0;
        }
        if(sum<0)
            return 0;
        int w1 = fun(t+1,sum-a[t]);
        int w2 = fun(t+1,sum);
        map.put(t+" "+sum,w1+w2);
        //System.out.println(t+" "+(w1+w2));
        return w1+w2;
    }
}
2.中国象棋中,马只能走"日"字,且限定只能往右上方走,输入起始坐标和终点坐标,求方案数。(过了100%)
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
    static Map<String,Integer> map = new HashMap<>();
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
            int x0 = in.nextInt();
            int y0 = in.nextInt();
            int x1 = in.nextInt();
            int y1 = in.nextInt();

        System.out.println(fun(x0,y0,x1,y1));
    }
    public static int fun(int x0,int y0,int x1,int y1){
        if(x0==x1&&y1==y0){
            return 1;
        }
        if(x0>x1||y0>y1)
            return 0;
        if(map.containsKey(x0+" "+y0))
            return map.get(x0+" "+y0);
        int a = fun(x0+1,y0+2,x1,y1);
        int b = fun(x0+2,y0+1,x1,y1);
        map.put(x0+" "+y0,a+b);
        return a+b;
    }
}



全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐