2021年百度公司普通程序員面試題
小編:管理員 1268閱讀 2021.06.17
?判斷一個括號字符串是否匹配正確,如果括號有多種,怎么做?如(([]))正確,[[(()錯誤。
?用棧來出現,凡是左括號就壓棧,凡是右括號就出棧,最后如果棧為空就匹配正確
?百度Spider如何在不超過抓取限額的情況下使得抓取的網頁價值之和最大,要求一個最佳抓取方案。請詳細描述你的算法思路(可以用偽代碼),并分析時間復雜度和空間復雜度。
?假設每個網頁有價值為wi.
wi的值為浮點數,通過堆實現.
wi為整數,則通過桶式排序記錄每個價值對應的網頁數量
?僅用O(1)的空間,將整數數組按奇偶數分成2部分,數組左邊是奇數、右邊是偶數。(要求:給出完整代碼,盡量高效,簡潔)
?#兩個指針,分別從頭和從尾遍歷數組,詳見代碼,已測試通過
#include
#include
#define bool int
#define false 0
#define true 1
void Reorder(int *pData, unsigned int length, bool (*func)(int));
bool isEven(int n);
void ReorderOddEven_1(int *pData, unsigned int length)
{
????if(pData == NULL || length == 0)
????????return;
????int *pBegin = pData;
????int *pEnd = pData + length - 1;
????while(pBegin < pEnd)
????{
????????// 向后移動pBegin,直到它指向偶數
????????while(pBegin < pEnd && (*pBegin & 0x1) != 0)
????????????pBegin ++;
????????// 向前移動pEnd,直到它指向奇數
????????while(pBegin < pEnd && (*pEnd & 0x1) == 0)
????????????pEnd --;
????????if(pBegin < pEnd)
????????{
????????????int temp = *pBegin;
????????????*pBegin = *pEnd;
????????????*pEnd = temp;
????????}
????}
}
void Reorder(int *pData, unsigned int length, bool
??(*func)(int))
{
????if(pData == NULL || length == 0)
????????return;
????int *pBegin = pData;
????int *pEnd = pData + length - 1;
????while(pBegin < pEnd)
????{
????????//向后移動pBegin
????????while(pBegin < pEnd &&!func(*pBegin))
????????????pBegin ++;
????????// 向前移動pEnd
????????while(pBegin < pEnd &&func(*pEnd))
????????????pEnd --;
????????if(pBegin < pEnd)
????????{
????????????int temp = *pBegin;
????????????*pBegin = *pEnd;
????????????*pEnd = temp;
????????}
????}
}
bool isEven(int n)
{
????return (n & 1) == 0;
}
相關推薦
- 同洲電子 2021 軟件工程面試題 第1題:數據有哪幾種常見的結構?第2題:java中類與類之間有哪些關系?第3題:DDD是什么?第4題:寫一個靜態方法, 在方法中傳入一個對象, 并且循環打印出此對象所屬的類名與方法名?(要用反射去實現)第5題:結合實際, 談談你對 領域建模與面向對象分析的理解
- 百度 2021 硬件開發面試題 第1題: 阻塞與非阻塞區別第2題: 畫出D觸發器結構,解釋建立時間和保持時間第3題: 名詞解釋:SIMD、VLIM第4題: CPU的5級流水是什么?流水線優缺點?第5題: 1——16循環計數器,用Verilog或VHDL第6題: SRAM設計FIFO,不要求程序,給出結構圖及設計思路第7題…
- 經典筆試題-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 題:基礎10 道,中等難度2 道)110、數據庫,比如100 用戶同時來訪,要采取什么技術解決?【基礎】 答:可采用連接池。111、什么是ORM?【基礎】 答:對象關系映射(Object—Relational Mapping,簡稱ORM)是一種為了解決面向對象…