第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题

废话不多说,直接上题和答案

平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,应该容纳400人

双向循环列表,从任何一个元素开始可以遍历全部元素

先和后面的元素相连

s->next=p->next;

p->next->prev=s;

在前面的元素相连

p->next=s;

s->pre=p;

答案显而易见 第二项

画图可以实现

时间轮转为1秒

A 24

B 20

C 7

D14

总时间为73所以平均周转时间为73/4=18.25

有4种坐的方式

在不考虑四个小孩的顺序只考虑这四个小孩坐哪四个位置的时候, 四个小孩坐一起的时候有8个方向,2个面对面的时候只有4个。

结果为480

动态分配都在堆中,毋容置疑

Yield()暂时交出cpu控制权,从running状态转为runnalbe状态,但是仍有可能被调度,sleep()线程指定休眠一段时间wait()在其他线程调用此对象的notify()notifyAll()方法时才能继续执行线程中sleep()方法和yeild()方法的主要区别

: 1.sleep()

方法会给其他线程运行的机会,而不管其他线程的优先级,因此会给较低优先级的线程运行的机会;yeild()方法只会给优先级相同的或者比自己高的线程运行的机会2.sleep()方法声明抛出InterruptionException异常,而yeild()方法没有声明抛出任何异常3.sleep()方法比yeild()方法具有更高的可移植性4.sleep()方法使线程进入阻塞状态yeild()方法使线程进入就绪状态当前运行的线程可以调用另一个线程的join()方法,当前运行的线程将转到阻塞状态直到另一个线程运行结束,它才会恢复运行  join()有两种形式:public void join()和public void join(long timeout)可以设置阻塞的时间

sleep()方法进入阻塞状态,当有两个线程(线程1和线程2),线程1的优先级比线程2的优先级高,线程1sleep()则线程2可以获得运行机会

当有比当前线程优先级高的线程出现时,高优先级会抢占CPU并运行,yield()方法,暂停一段时间,且这段时间不确定,它会使与当前线程相同优先级的线程获得运行机会

具有相同优先级的多个线程调度不一定是分时的,多核CPU可能同时调度

首先选择排序、插入排序、冒泡排序时间复杂度为 O(n^2)

快速排序最坏排序为时间复杂度O(n^2)

堆排序需要知道是大顶堆或者小顶堆,因为不了解数列特征所以不推荐其复杂度为O(nlgn);

所以快排是最优的

TCP/IP建立在三次握手协议基础上

前提条件是,虚拟机发生故障当且仅当它的宿主发生故障

根据条件得出虚拟机发生故障则物理机发生故障,则这台物理机所虚拟出的虚拟机会发生故障,所以虚拟机发生的故障不是彼此独立的,单台虚拟机的故障率和单台物理机的故障率是相同的,如果组成集群,那么当某个虚拟机发生故障时,另一个虚拟机会代替发生故障的虚拟机运行,所以可靠性比5台物理机的可靠性相同,所以无法判断这一百台虚拟机和100台物理机哪个更可靠

附加题1

sleep()和wait()的区别

sleep()是让进程休眠一段时间,sleep()休眠持有锁,不释放系统资源,时间过后自动醒来进入可运行状态,但不一定执行,取决于虚拟机的调度,sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。

wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再notify()也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。

使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 
   synchronized(x){ 
      x.notify() 
     //或者wait() 
   }

附加题2

大意,插入一个二叉树,求二叉树最大节点和最小节点的绝对值

java 代码如下

//树节点

public class TreeNode1 {
private TreeNode1 leftChild;
private TreeNode1 rightChild;
int intege;

public TreeNode1 getLeftChild() {
return leftChild;
}
public void setLeftChild(TreeNode1 leftChild) {
this.leftChild = leftChild;
}
public TreeNode1 getRightChild() {
return rightChild;
}
public void setRightChild(TreeNode1 rightChild) {
this.rightChild = rightChild;
}
public int getIntege() {
return intege;
}
public void setIntege(int intege) {
this.intege = intege;
}
public TreeNode1(int intege) {
super();
this.intege = intege;
}

}

二叉树

public class Btree1 {

private int max;
private int min;

public Btree1(int max, int min) {
super();
this.max = max;
this.min = min;
}

//构造二叉树
public void insert(TreeNode1 root, int i) {
if (root == null) {
System.out.println("树为空");
} else {

if (root.getIntege() < i) {
if (root.getLeftChild() != null) {
insert(root.getLeftChild(), i);
} else {
root.setLeftChild(new TreeNode1(i));
}
} else {
if (root.getRightChild() != null) {
insert(root.getRightChild(), i);
} else {
root.setRightChild(new TreeNode1(i));
}
}
}
}

插入二叉树,遍历找到节点最大值和最小值
public void FindMax_Min(TreeNode1 root) {
if (root == null) {
System.out.println("该树为空");
} else {
if(root.getIntege()>max)
{
max=root.getIntege();
}
if(root.getIntege()<min)
{
min=root.getIntege();
}
//System.out.println(root.getIntege() + "  ");
if (root.getLeftChild() != null) {
FindMax_Min(root.getLeftChild());
}
if (root.getRightChild() != null) {
FindMax_Min(root.getRightChild());
}
}
}
public void Max_Min_abs()
{
System.out.println(max-min);
}
public static void main(String[] args) {
int a[]={1,45,6,7,12,89,2,17};
Btree1 b=new Btree1(-10000,10000);
TreeNode1 treeNode1=new TreeNode1(a[0]);
for(int i=1;i<a.length;i++)
{
b.insert(treeNode1, a[i]);
}
b.FindMax_Min(treeNode1);
b.Max_Min_abs();
}
}

附加题3

求两个字符串最大的连续出现的公共部分 列如query为acbac,text为acaccbabb那么公共子串为cba 长度为3

下面为java代码编写

import java.util.Scanner;

public class FindMaxSubString {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入query");
/*String str1 = "acbac";
String str2 = "acaccbabb";
*/
String str1=s.nextLine();
System.out.println("请输入text");
String str2=s.nextLine();
String result = getMaxString(str1, str2);
if(result!=null)
{
System.out.println(result.length());
}
else
{
System.out.println("没有公共子串");
}
}

private static String getMaxString(String str1, String str2) {
String max = null;
String min = null;
max = (str1.length() > str2.length() ? str1 : str2);
min = max.equals(str1) ? str2 : str1;
for (int i = 0; i < min.length(); i++) {
for (int start = 0, end = min.length() - i; end != min.length() + 1; start++, end++) {
String sub = min.substring(start, end);
if (max.contains(sub))
return sub;
}
}
return null;
}
}

本人做的,可能有不对的,希望大家提出啊,持续更新中

阿里笔试题(2015)持续更新中相关推荐

  1. 面试1:Java、微服务、架构常见面试题(持续更新中)

    Java.微服务.架构常见面试题(持续更新中) 文章目录 Java.微服务.架构常见面试题(持续更新中) ==**Java**== 1.Java概述 (1)JVM.JRE和JDK (2)Java特点 ...

  2. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(4)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  3. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(8)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  4. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(3)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  5. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(1)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  6. 9.17之前的安卓笔试题总结——持续更新

    从周六开始,面试.笔试.宣讲会连轴转,昨天收到群面的fail通知之后,下午也不想去广工现场跟一群汉子手撕代码了,选择了爬床睡觉,过了一天的安逸日子,终于勤奋起来把之前的笔试盲点总结一下,虎牙面试的稍后 ...

  7. 面试题总结(持续更新中~)

    面试题总结 1.说说你对react的理解?有哪些特性? 2.React组件之间如何通信? props传参: pub-sub传参: context传参: redux 3.说说React生命周期有哪些不同 ...

  8. 前端面试题(持续更新中)

    全家桶项目源码:Vue全家桶+SSR+Koa2全栈开发美团网[完整版] 链接:https://pan.baidu.com/s/1cwPDVkj_I5z568mYIHni4A 提取码:24g2 2020 ...

  9. 前端常考react面试题(持续更新中)

    react diff 算法 我们知道React会维护两个虚拟DOM,那么是如何来比较,如何来判断,做出最优的解呢?这就用到了diff算法 diff算法的作用 计算出Virtual DOM中真正变化的部 ...

最新文章

  1. 基于用户投票的排名算法Reddit
  2. java 反射 成员变量_java使用反射访问成员变量的值示例
  3. UNIX环境高级编程 文件I/O
  4. 网易云信亮相LiveVideoStackCon 2019,解读移动端播放器优化实践
  5. pytorch中resnet_ResNet代码详解
  6. mysql存储过程套嵌_mysql存储过程套嵌
  7. c语言编程 float p,C语言编程经典例题
  8. git lib 创建新的项目在某个路径下_版本控制管理工具git的使用
  9. python django开发工具_Python和Django web开发工具pycharm介绍
  10. SpringCloud工作笔记059---Jquery消息提示插件toastr使用详解
  11. akka mysql_Spray + Akka高性能异步IO并发
  12. arcgis api for python网盘_ArcGIS API for Python(2)
  13. linux上运行tcpserver没反应,linux网络编程/tcp_server中server bind失败原因的调研
  14. python帮助文件如何设为中文_如何使用Python将.CHM帮助文件存储为文本?
  15. 计算机硬件具体都包含哪些,电脑硬件包括哪些
  16. 计算机考试的知识要记忆背,计算机考试怎么过
  17. 深度学习半自动标注_时下流行的深度学习数据标注工具
  18. NLP自然语言处理-机器学习和自然语言处理介绍(四)
  19. 2020-10-16FATFS 0.12 ffconf.h配置
  20. prototype (原型) 属性

热门文章

  1. mov转gif怎么制作?怎么把mov视频转换成gif?
  2. 区间最大子段和 + 最大子矩阵和 + 最大m子段和(DP)
  3. C艹期中考复习错题集
  4. 红包html页面,JavaScript Html实现移动端红包雨功能页面
  5. 轻松搞懂SMBIOS
  6. PTA 1007 Maximum Subsequence Sum
  7. 【LeetCode】—— 最近公共祖先
  8. App“照妖镜”:随时监控你的应用质量
  9. python录音pyaudio_『开发技巧』Python音频操作工具PyAudio上手教程
  10. 2022牛客寒假第二场 小沙的身法 (思维,树上两点距离)