趨勢2017校招 筆試題

1

現有給定升序排列的整型數組a[n]和整數S,需在整型數組中找到任意個下標,使得各下標對應數字之和爲S,輸出所有可能的下標組合。
例如:
數組 1,4,8,10,12,15,22,25,31
X = 30
可得:
下標: 2,5:a[2]+a[5]=30
下標: 0,1,3,4:a[0]+a[1]+a[3]+a[4]=30

使用下面的函數原型:
int searchNumbers(int data[], unsigned int length, int sum)
{

}

2

有一個堆棧,可以進行以下兩個操作
1)S – 將一個輸入的數字壓入棧中
2)X – 將棧中的一個數字彈出至輸出
已知的輸入數據流是1,2,3,4,5,6六個數字(從小到大),在任意時刻,只要棧裏有數字,可以進行X操作
例如:通過SXSSSSXXSXXX操作,可以輸出154632序列,而不管通過何種操作,無法輸出154623序列

請編程實現打印出所有不可能的輸出序列

注:編程實現時,通過註釋能清楚的表達算法;定義了功能明確的函數,或子函數;即使有錯或局部實現,也可酌情給分。若本題採用C/C++實現,可以使用標準C庫和STL;如果採用Java實現,可以使用Java SE中的API。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章