一道簡單的百度面試題遇到的問題

2022-08-17 16:57:15 字數 848 閱讀 2906

依序遍歷0到100閉區間內全部的正整數。假設該數字能被3整除,則輸出該數字及『*』標記;假設該數字能被5整除。則輸出該數字及『#』標記;假設該數字既能被3整除又能被5整除。則輸出該數字及『*#』標記。

這道看似很easy的題目。卻潛藏著幾個玄機。面試官通過這道題,考察學生在語法、語義、語用以及演算法優化方面的能力。

現實告訴我們。通過這一道題目。就能夠淘汰85%的面試者。看似殘酷的考察方式,卻也體現出學生在基礎知識、動手能力到思維能力上的差距。

須要注意的考察點:

- 語法:語法的正確書寫,包含格式

- 語義:對迴圈、分支等語義的理解與掌握

- 語用:對變數命名、表示式及語句的組合使用

- 演算法優化:假設要提高執行效率,能夠在演算法上尋找突破口,也能夠採用空間換時間的通用原則。

我的程式

public class test 

}else if(i % 5 == 0)

else

result = i + "";

system.out.println(result);

} }}

可是輸出總是不對,輸出有些反覆,

為什麼會這樣呢,**出現了問題,找了好久都沒發現。

後面和學長交流了下,發現僅僅要把

if(i % 3 == 0) {

result+=

i + "*";改為if(i % 3 == 0) {

result

= i + "*";就是把前面的 「+」去掉就能夠了。

1。基礎知識非常重要(注意+=),公司注重基礎和持續競爭能力,要多多寫程式

2,交流討論是提高學習的效率的好方法

3,注意細節

一道百度面試題

給出乙個整型陣列num,對其中的每個元素,輸出在它左側且比它小的最近元素,要求時間複雜度為o n 例如int num 2無左側最近元素 4左側最近的是2 1沒有 3左側最近的是1.分析 建立乙個棧,然後將陣列中的元素從右至左依次壓入棧中。對每個元素,入棧前先檢查棧頂元素是否比它大,若是的話,則該元素...

一道百度面試題

下面這段 是把中英文混合字串 漢字用兩個位元組表示,特點是第乙個位元組的最高位為1 中的大寫字母轉化為小寫字母,請找出其中的bug,注意各種異常情況。for char piterator szword piterator 0 piterator else if piterator a piterat...

百度一道面試題

我這裡複製的是原話,當然順序是不一定的,很多拿到題目第一反應就是用map,當然可以解決,但是效率不高。還有人覺得應該用演算法 我是沒想到用啥演算法好.還有覺得應該先排序.還有覺得用位圖.bitmap 等等方法!我都覺得麻煩,思維方式就是,從節省時間考慮,從陣列來看,我們都得遍歷一次陣列裡面的元素,那...