日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 阿里筆試題(2015)持續更新中

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

來源:程序員人生   發布時間:2014-09-16 07:55:53 閱讀次數:3258次

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

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


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


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

先和后面的元素相連

s->next=p->next;

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

在前面的元素相連

p->next=s;

s->pre=p;

答案顯而易見


畫圖可以實現


時間輪轉為1秒

A 24

B 20

C 7

D14

總時間為73所以平均周轉時間為16.25


有兩種坐的方式



動態分配都在堆中,毋容置疑



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

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


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产福利二区 | 精久国产一区二区三区四区 | 久久久久免费精品 | 日本黄xxxxxxxxx100| 国产精品美女久久久久久久网站 | www久久 | 亚av在线 | 国产午夜精品一区二区三区欧美 | 欧美日韩激情在线 | 久久久久久久国产 | 欧美日本乱大交xxxxx | 天天噜 | 欧美日韩在线免费观看 | 天天摸天天操天天干 | 欧美午夜精品久久久久久人妖 | 1000部精品久久久久久久久 | 久久久蜜桃 | 欧美日韩在线播放 | 久久国产精品一区二区三区 | 国产一区二区三区在线 | 国产午夜亚洲精品理论片色戒 | 久久电影国产免费久久电影 | 成人动漫在线播放 | 中文字幕在线不卡视频 | 久久久久久久国产精品 | 久久久久亚洲精品 | 男女免费视频 | 91精品国产综合久久福利 | 国产一级在线 | 在线无码 | 视频一区亚洲 | 一个色av | 国产精品久久久久久久久久久不卡 | 亚洲毛片网 | 亚洲精品在线视频网站 | 国产精品久久久久久久久免费相片 | 日韩在线 | 五月天导航 | 欧美一级大片免费看 | 一区精品视频 | a级毛片免费高清视频 |