面试题
Bean冷的心
不要害怕被利用,利用你,证明你有利用价值。
展开
-
(Java热门面试热门题)Maxinum Gap问题
题目:要求你设计一个时间复杂度为O(n)的算法,实现将一个无序数组排列好,然后求彼此之间的最大差值,而且不能使用非基于比较的排序算法。分析很明显这道题是故意坑人的,时间复杂度为O(n),那可不就是桶排序,基数排序和基数排序么,可是这些都是非基于比较的排序算法。所以不能直接用桶排序进行排序,我们需要用到这个算法的一个重要的思想,就是桶,比如给9个数字(数字的范围是从0到10),则准备10个(n...原创 2019-07-31 18:38:32 · 1948 阅读 · 0 评论 -
(Java热门面试题)如何用栈实现队列和用队列实现栈
常见的一个面试题,就是栈和队列的转换问题,先来说一下原理:如何通过栈实现队列?栈是先进后出,队列是先进先出,所以准备两个栈,一个按照正常入栈顺序入栈,然后再出栈到第二个栈中,这样顺序就反过来了。看图:按照队列的入队顺序应该是:1,2,3,出队顺序应该是1,2,3(先进先出)入栈序列:1,2,3,把栈内所有数字全部弹出依次入栈B,栈B出栈顺序为:1,2,3这样就通过栈实现了队列需要注意...原创 2019-08-01 21:46:54 · 1661 阅读 · 3 评论 -
Java面试题:什么是死锁?如何手写一个死锁(Dead Lock)
要想实现一个死锁,首先要明白什么是死锁,我们看一下死锁的定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。--百度用通俗的话来说就是张三跟李四下饭馆吃饺子,张三拿着醋,李四拿着蒜瓣,张三说李四你给我吃点蒜,李四说,那不行,你...原创 2019-07-11 14:01:02 · 3522 阅读 · 7 评论 -
十分钟彻底搞懂Java反射
想要搞明白反射到底是什么,首先要知道什么是反射?反射有什么用,为什么需要反射。首先我们看一下反射的定义:一、定义:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。二、定义解释这样文绉绉的定义实在是难理解,而且到底什么是在运行状态,对...原创 2019-08-08 17:40:40 · 2634 阅读 · 1 评论 -
(Java热门面试题)怎么顺时针打印一个二维数组
想要顺时针打印二维数组,其实只需要搞定两个点,一个是左上角的坐标,一个是右下角的坐标,比如我开辟了一个4x4的二维数组,里面有左上角坐标为(0,0),右下角坐标为(3,3),有了这两个坐标就太简单了,只需要让横坐标不变,列坐标++,直到4这个位置停下来,打印1,2,3然后列坐标不变,横坐标++,直到16停止这时候横坐标不变,列坐标–,直到13为止:最后横坐标不变,列坐标–,直到1停止,...原创 2019-08-02 11:59:03 · 1690 阅读 · 2 评论 -
(面试题)如何之字形打印二维数组
什么是之字形打印二维数组:比如给定一个二维数组按照红色线路打印,即称作“之”字型打印怎么实现呢?想要直接寻找每个位置与位置之间的关系是很难的,所以我们需要从这个线路着手,怎么能走出这样的线路呢?我们设置两个指针a和b,各自的行走线路如下:有什么用呢?ab总能形成一个对角线,形成了对角线,然后设置一个boolean类型的flag,控制打印的方向,如果flag为true,就从下往上打...原创 2019-08-06 20:34:29 · 1841 阅读 · 0 评论