牛客网刷题总结(一)
1.运动员排名
1 | 一架飞机载着5位运动员从奥林匹克运动会归来,这5位运动员在某个项目中排名第一到第五。他们说了下面这些话: |
解析:
1 | A分析: |
2.集合特性
1 | 说出ArrayList,Vector, LinkedList的存储性能和特性? |
解析
1 | ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 |
3.说明errorPage的作用
1 | 正常页面中<%@page errorpage=”error.jsp”%> |
4.sleep( ) 和 wait( ) 有什么区别?
1 | sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 |
5.forward和redirect的区别?
1 | forward: 转发,在下一个页面中,request保留上一个页面中的request的所有值 |
6.矩阵判断数字
1 | 给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增 |
解析
1 | 答案:算法思想:沿着对角线查找,获得i,使得k位于a[i][i]与a[i+1][i+1]之间。k只可能存在于a[i][i]对应的右上角矩阵 和a[i+1][i+1]对应的左下角矩阵。使用递归法继续查找即可。 |
7.数据库
1 | 问题描述: |
解析
1 | Select SNAME FROM S Where NOT |
8.请使用内部类实现线程设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
1 | public class Solution { |
9.请你说明一下TreeMap的底层实现?
1 | TreeMap是一个有序的key-value集合,基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序 |
10.
1 | 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 |
解析
1 | class Solution { |