標籤:ext proc 節點 浮點 nod 個數 sdn img 遞迴
前幾天Java面試中遇到的問題,這隻是其中的一部分問題,面試中有很多問題是關於資料結構和演算法的。在這裡做下總結,希望有能力的人可以試著做一下,並在評論區留下您的答案,讓大家相互學習。謝謝
程式設計部分
第1題*
已知類定義如下
class Node {
public Doublevalue;
public List<Node>children;
}
將以下遞迴程式改成非遞迴程式(兩個程式的輸出應保持順序一致)
publicstaticvoid process(Node node) {
for (int i = 0; i < node.children.size(); i++) {
Node child = node.children.get(i);
if (child.value < node.value) {
process(child);
}
}
System.out.println(node.value);
for (int i = 0; i < node.children.size(); i++) {
Node child = node.children.get(i);
if (child.value >= node.value) {
process(child);
}
}
}
第2題*
請完善以下程式,輸入為字元數組(數組內每個字元均不相同)和個數n,返回值是由這些字元組成的所有長度為n的字串
例如輸入為{‘a‘,‘b‘,‘c‘}和個數1,則返回值為{"a","b","c"}
例如輸入為{‘a‘,‘b‘,‘c‘,‘d‘}和個數2,則返回值為{"ab","ac","ad","ba","bc","bd","ca","cb","cd","da","db","dc"}
public String[] doit(char[]chars){
......
}
第3題**
參考第1題Node類定義,Node類定義了一個樹形結構,請完善以下程式
輸入node滿足以下條件:
1 node的value是大於0的浮點數
2 node的下級節點(以及更下級節點)的value可能是null或者大於0的浮點數
程式的作用如下:
1 將樹形結構裡面所有value是null的均設為大於0的浮點數
2 非葉子節點(即children數量大於0的節點)的value均等於它的children的value之和
public void doit(Nodenode){
......
}
第4題***
Saga語言由變數定義、變數賦值、條件執行三種語句組成,其中變數定義必須位於另外兩種語句之前,三種語句定義如下:
變數定義由變數名和常量值組成:
def變數名=常量值
變數賦值由變數名和運算運算式組成:
變數名=運算運算式
條件執行由比較運算式和一系列變數賦值組成:
if(比較運算式){
變數賦值1
變數賦值2
......
}
其中:
a) 變數名由小寫字母組成
b) 常量值為浮點數,例如1.1,2.0等
c) 運算運算式由變數、常量值、運算子加減乘除(+,-,*,/)和括弧組成
c) 比較運算式由兩個運算運算式加比較符(>,<, =)組成,樣本a+b>100.0
Saga語言程式樣本:
def a=100.0
def b=200.0
def c=1.0
def d=0.0
c=(a+b)/2.0
if(c=150.0){
d=d+1.0
d=d+1.0
}
請完善以下程式(寫出思路即可),輸入是任意Saga語言程式(字串格式),返回值是程式中所有變數及其最終值。
publicMap<String, Double> doit(Stringprog){
......
}
資料分析部分
第1題**
中為一列時序變數,綠色點為正常資料點,紅色為異常資料點。請設計演算法可識別異常點,簡述演算法架構和內容要點。
邏輯與幾何部分
第1題***
20個球,按順序標上序號1-20,將這些球放進一個箱子,老師從這個箱子中隨機取出2個球,序號分別是a和b,將a與b的和告訴學生甲,將a與b的積告訴學生乙,然後
甲問乙:你知道a和b分別是多少嗎?
乙回答:不知道
乙問甲:你知道a和b分別是多少嗎?
甲回答:不知道
乙說:呵呵,我知道了
甲說:呵呵,我也知道了
請回答a和b分別是多少,並寫出推理過程。
第2題**
已知平行四邊形的邊長分別為a和b,外接正方形,只外接點,無外接邊,求外接正方形邊長c的範圍
Java面試問題總結