1.將數(shù)組從小到大輸出
面試官描述為:有一個(gè)數(shù)組,前部分(注意并未說(shuō)前半部分)非遞減,后部分非遞增,要求將該數(shù)組從小到大輸出,時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。
當(dāng)時(shí)我的思路是排序后順序輸出,但是只能做到時(shí)間復(fù)雜的O(nlogn)。面試完Google并沒(méi)有找到該題目。
2.將二維正方形矩陣從右上角沿對(duì)角線(xiàn)輸出
輸入為非負(fù)整數(shù)N,該數(shù)等于右上角數(shù)值,即為矩陣邊長(zhǎng)。
我當(dāng)時(shí)的想法是沿對(duì)角線(xiàn)一行一行輸出,輸出為單獨(dú)的函數(shù),給它起始、結(jié)束位置即可,面試完后發(fā)現(xiàn)是錯(cuò)的,起始、結(jié)束位置的公式寫(xiě)錯(cuò)了。如下是正確解法
vector<int> arrayPrint(vector<vector<int> > arr, int n) { vector<int> result; int row = 0, col = n-1; while(row < n) { int i = row, j = col; while(j<n && i<n) { result.push_back(arr[i][j]); i++; j++; } if(j == n && i < n) col--; if(i == n) row++; } return result; }
3. C++基礎(chǔ)
1. int (*s[10]) (int)
s為指針數(shù)組,其中的每一個(gè)元素為參數(shù)為int,返回值為int的函數(shù)指針。
2. C++是類(lèi)型安全的嗎
不是。因?yàn)镃++中0可以代表bool類(lèi)型變量中的false,非0可代表true
然后,后來(lái)還問(wèn)了些最近有沒(méi)有做一些什么項(xiàng)目之類(lèi)的,目測(cè)跪了,發(fā)揮的太糟糕了。