這是阿里的第二場筆試,本來覺得沒啥好寫的,一道排列組合,一道迷宮。沒有什麼發揮的空間。但是後來在和大家討論的過程中,把這道題的公司給敲出來了,但是這公式也不能白敲,乾脆寫一篇文章總結一下。
題目描述
一共n個人,從中選出任意個人組成一隊,我們不妨記爲k,再從k個人選出一人做隊長。
題目分析
這是一個典型的排列組合問題,從n個人選出k個,可能是,從k個人選出一個隊長,種類數是,但是k可以是~,所以這個題的結果就是,這樣寫代碼是可以過一些例子的。
但是不會全過,因爲複雜度過大。當然可以在求的時候利用這個公式,因爲我們也是要計算的,這樣就會減少一定的複雜度,然後又能多過一些例子。
我們還會想到=,這樣又可以少一些計算。我們這時候就需要把一起計算,發現正好等於或者。
到這裏如果熟悉排列組合的同學,可能會想到了如果把數列反着再加一次。
如果說這個題有什麼需要總結的,就是一旦確定一個題目是排列組合的問題之後,可以去考慮使用公式優化計算量,當然時間緊迫,沒有時間的話,就很難去優化了,還是需要注意平時多積累。