雜題之求1 100連續不重複整數中的缺少的乙個數

2022-01-22 10:40:04 字數 475 閱讀 6598

1.問題:有1到100的連續整數陣列a,現將其打順序,並拿掉其中乙個數,是找出一種空間複雜度和時間複雜度較小的方法,找到這個數。

2.思路1:空間換時間,申請100個空間的陣列b,初始化為0,然後遍歷一次亂序陣列a, 令b[a[i]] = 1 (0 =< i < 99),在遍歷一次陣列b,若b[j] = 0,則缺少的數即為j。

思路2:時間換空間,不申請額外空間,用複雜度為o(n^2)的方法。

for (i = 1, i <= 100 ++i)

for (j = 0, j < 98; j++)

if a[j] == i;

break;

if (j == 98)

break;

3.思路3.較優解

1)求出1-100的整數和 sum = (1 + 100) * 100 / 2 = 5050;

2)遍歷一次無序陣列,每次用sum - a[i],則最終的sum即為被拿掉的那個數。

51nod 1138 連續整數的和 好題

給出乙個正整數n,將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。收起輸入1個數n 3 n 10 9 輸出連續整數中的第1個數,如果有多個按照遞增序排列,如果不能分解為若...

刷題筆記46 連續子陣列的最大和

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個開始,到第...

劍指Offer 題42(連續陣列的最大和)

輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為,和最大的子陣列為,因此輸出為該子陣列的和18。step1.從頭到尾逐個累加陣列中的每個數字,首先加上第乙個數字,從第二個數字開始累加,依次將累加和儲存...