題目: n個數字 , , ,n 形成一個圓圈,從數字 開始,每次從這個圓圈中刪除第m個數字 第一個為當前數字本身,第二個為當前數字的下一個數字 。當一個數字刪除后,從被刪除數字的下一個繼續刪除第m個數字。求出在這個圓圈中剩下的最后一個數字。 我的思路: 這是個很經典的環形問題,最優的方案時間復雜度是O n :先構建遞推公式,再使用循環或者遞歸都能輕松求解, 網上的教程很少能把這個遞推公式的由來描述 ...
2017-03-23 23:18 0 2148 推薦指數:
// test14.cpp : 定義控制台應用程序的入口點。 // ...
問題:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 看到這個就想起了上學的時光,那個苦啊. 廢話不多說,當時看到這個問題我就想到了遞歸,然后匆匆寫了代碼如下: 但是考慮不夠全面,1.沒有考慮會不會減到0或者負數 2. 如果n ...
題目:給定一個長度為N的數組,其中每個元素的取值范圍都是1到N。判斷數組中是否有重復的數字。(原數組不必保留) 方法1.對數組進行排序(快速,堆),然后比較相鄰的元素是否相同。時間復雜度為O(nlogn),空間復雜度為O(1)。方法2.使用bitmap方法。定義長度為N/8的char數組,每個 ...
【面試題043】n個骰子的點數 題目: 把n個骰子扔在地上,所有骰子朝上一面的點數之和為s, 輸入n,打印出s的所有可能的值出現的概率。 n個骰子的總點數,最小為n,最大為6n,根據排列組合的知識 ...
#include <iostream> using namespace std; int main() { long long s,n,i,j,p;s=0; cin>>n; for (i ...
唯一的,並且每個數字都在范圍0~n-1之內。在范圍0~n-1內的n個數字中有且只有一個數字不在該數組中, ...