careercup 中等難度 17 8

2021-09-06 20:14:02 字數 463 閱讀 2863

17.8 給定乙個整數陣列(有正數和負數),找出總和最大的連續序列,並返回總和。

解法:就是求連續子串行的和最大,不過存在乙個問題:

假設整個陣列都是負數,怎麼樣才是正確的行為呢?看看這個簡單的陣列,一下答案每個都可以說的通:

-3(假設子串行不能為空)

0(子串行的長度為空)

int_min(視為錯誤的情況)

我們會選擇第二種(maxsum=0),但並沒有所謂的「正確」答案。這一點可以跟面試官好好討論一番。

c++實現**:

#includeusing

namespace

std;

int getmaxsum(int a,int

n)

return

maxsum;

}int

main()

; cout

<10)<}

careercup 中等難度 17 7

17.7 給定乙個整數,列印該整數的英文描述 例如 one thousand,two hundred thirty four 解法 舉個例子,在轉換19 323 984時,我們可以考慮分段處理,沒三位轉換一次,並在適當的地方插入 thousand 千 和 million 百萬 也即,convert ...

careercup 中等難度 17 12

17.12 設計乙個演算法,找出陣列中兩數之和為指定值的所有整數對。時間複雜度o n 的解法 我們可以用乙個雜湊表或陣列或bitmap 後兩者要求陣列中的整數非負 來儲存sum x的值,這樣我們就只需要遍歷陣列兩次即可找到和為指定值的整數對。這種方法需要o n 的輔助空間。如果直接用陣列或是bitm...

careercup 高等難度 18 2

18.2 編寫乙個方法,洗一副牌。要求做到完美洗牌,換言之,這幅牌52!種排列組合出現的概率相同。假設給定乙個完美的隨機發生器。解法 假定有個陣列,含有n個元素,類似如下 1 2 3 4 5 利用簡單構造法,我們不妨先問自己,假定有個方法shuffle 對n 1個元素有效,我們可以用它來打亂n個元素...