多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網(wǎng) > 阿里筆試題(2015)持續(xù)更新中

阿里筆試題(2015)持續(xù)更新中

來源:程序員人生   發(fā)布時間:2014-09-16 07:55:53 閱讀次數(shù):3247次

第一次做阿里筆試題,除了ACM題之外從來沒有做過校招網(wǎng)絡(luò)題呀,完全是裸考,總體感覺吧,對于我來說,感覺時間不夠用,不是題不會,感覺時間緊,大腦很混亂,總結(jié)這一次的筆試題

廢話不多說,直接上題和答案


平均每個人逗留時間為20分鐘,那么開場前20分鐘一共來了400人,且有20個人逗留時間已經(jīng)到,但他們不一定出去,注意是平均時間,所有博物館最少應(yīng)該容納500人


雙向循環(huán)列表,從任何一個元素開始可以遍歷全部元素

先和后面的元素相連

s->next=p->next;

p->next->prev=s->next;

在前面的元素相連

p->next=s;

s->pre=p;

答案顯而易見


畫圖可以實現(xiàn)


時間輪轉(zhuǎn)為1秒

A 24

B 20

C 7

D14

總時間為73所以平均周轉(zhuǎn)時間為16.25


有兩種坐的方式



動態(tài)分配都在堆中,毋容置疑



Yield()暫時交出cpu控制權(quán),從running狀態(tài)轉(zhuǎn)為runnalbe狀態(tài),但是仍有可能被調(diào)度,sleep()線程指定休眠一段時間wait()在其他線程調(diào)用此對象的notify()notifyAll()方法時才能繼續(xù)執(zhí)行線程中sleep()方法和yeild()方法的主要區(qū)別

: 1.sleep()

方法會給其他線程運行的機會,而不管其他線程的優(yōu)先級,因此會給較低優(yōu)先級的線程運行的機會;yeild()方法只會給優(yōu)先級相同的或者比自己高的線程運行的機會2.sleep()方法聲明拋出InterruptionException異常,而yeild()方法沒有聲明拋出任何異常3.sleep()方法比yeild()方法具有更高的可移植性4.sleep()方法使線程進入阻塞狀態(tài)yeild()方法使線程進入就緒狀態(tài)當前運行的線程可以調(diào)用另一個線程的join()方法,當前運行的線程將轉(zhuǎn)到阻塞狀態(tài)直到另一個線程運行結(jié)束,它才會恢復(fù)運行  join()有兩種形式:public void join()和public void join(long timeout)可以設(shè)置阻塞的時間

sleep()方法進入阻塞狀態(tài),當有兩個線程(線程1和線程2),線程1的優(yōu)先級比線程2的優(yōu)先級高,線程1sleep()則線程2可以獲得運行機會

當有比當前線程優(yōu)先級高的線程出現(xiàn)時,高優(yōu)先級會搶占CPU并運行,yield()方法,暫停一段時間,且這段時間不確定,它會使與當前線程相同優(yōu)先級的線程獲得運行機會

具有相同優(yōu)先級的多個線程調(diào)度不一定是分時的,多核CPU可能同時調(diào)度



首先選擇排序、插入排序、冒泡排序時間復(fù)雜度為 O(n^2)

快速排序最壞排序為時間復(fù)雜度O(n^2)

堆排序需要知道是大頂堆或者小頂堆,因為不了解數(shù)列特征所以不推薦其復(fù)雜度為O(nlgn);

所以快排是最優(yōu)的


TCP/IP建立在三次握手協(xié)議基礎(chǔ)上


前提條件是,虛擬機發(fā)生故障當且僅當它的宿主發(fā)生故障

根據(jù)條件得出虛擬機發(fā)生故障則物理機發(fā)生故障,則這臺物理機所虛擬出的虛擬機會發(fā)生故障,所以虛擬機發(fā)生的故障不是彼此獨立的,單臺虛擬機的故障率和單臺物理機的故障率是相同的,如果組成集群,那么當某個虛擬機發(fā)生故障時,另一個虛擬機會代替發(fā)生故障的虛擬機運行,所以可靠性比5臺物理機的可靠性相同,所以無法判斷這一百臺虛擬機和100臺物理機哪個更可靠

附加題1

sleep()和wait()的區(qū)別

sleep()是讓進程休眠一段時間,sleep()休眠持有鎖,不釋放系統(tǒng)資源,時間過后自動醒來進入可運行狀態(tài),但不一定執(zhí)行,取決于虛擬機的調(diào)度,sleep(milliseconds)可以用時間指定使它自動喚醒過來,如果時間不到只能調(diào)用interrupt()強行打斷。

wait是進入線程等待池等待,出讓系統(tǒng)資源,其他線程可以占用CPU。一般wait不會加時間限制,因為如果wait線程的運行資源不夠,再notify()也沒用,要等待其他線程調(diào)用notify/notifyAll喚醒等待池中的所有線程,才會進入就緒隊列等待OS分配系統(tǒng)資源。

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



附加題2

大意,插入一個二叉樹,求二叉樹最大節(jié)點和最小節(jié)點的絕對值

java 代碼如下

//樹節(jié)點

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;
}

//構(gòu)造二叉樹
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));
}
}
}
}

插入二叉樹,遍歷找到節(jié)點最大值和最小值
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

求兩個字符串最大的連續(xù)出現(xiàn)的公共部分 列如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;
}
}

本人做的,可能有不對的,希望大家提出啊,持續(xù)更新中


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: l欧美18一19sex性 | 18在线网站| 欧美高清 hd video | 国产美女精品自拍 | 天天欧美 | 人人澡人人擦人人免费 | 久久久精品一级二级三级 | 色老久久精品偷偷鲁一区 | 国产精品第一页在线 | 有码一区 | 欧美xxxxxxxxxx| 色a在线 | 国产精品久久免费 | 亚洲不卡在线观看 | 欧美aa一级片| 日韩理伦片秋霞理伦 | 宇都宫紫苑乳在线观看 | 亚洲综合视频网 | 日本免费高清视频二区 | 欧美大片a一级毛片视频 | 国产精品久久久久久久久久一区 | 婷婷丁香激情 | 欧美一区二区在线播放 | 麻豆福利在线观看 | 国产在线视频资源 | 在线国产视频观看 | 欧美成人性视频播放 | 范冰冰一级做a爰片久久毛片 | 伊人蕉久| 亚洲精品日韩一区二区 | 欧美最猛黑人xxxx黑人猛交98 | 久久国产精品老女人 | 亚洲人成网址在线观看 | 国产精品免费视频一区 | 欧美天堂色 | 成人免费淫片免费观看 | 欧美激情亚洲精品日韩1区2区 | 一级片久久 | 在线看a网站| 色婷婷成人 | 免费看黄色的网址 |