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) 回帖