刷CCF的演算法題(第一天)

2021-08-06 08:02:05 字數 976 閱讀 4621

題目: 中位數

題目來自ccf

問題描述 

在乙個整數序列a1, a2, …, an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其為中間數。在乙個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。 

給定乙個整數序列,請找出這個整數序列的中間數的值。 

輸入格式 

輸入的第一行包含了乙個整數n,表示整數序列中數的個數。 

第二行包含n個正整數,依次表示a1, a2, …, an。 

輸出格式 

如果約定序列的中間數存在,則輸出中間數的值,否則輸出-1表示不存在中間數。 

樣例輸入 

6 2 6 5 6 3 5 

樣例輸出 

5 樣例說明 

比5小的數有2個,比5大的數也有2個。 

樣例輸入 

4 3 4 6 7 

樣例輸出 

-1 樣例說明 

在序列中的4個數都不滿足中間數的定義。 

樣例輸入 

5 3 4 6 6 7 

樣例輸出 

-1 樣例說明 

在序列中的5個數都不滿足中間數的定義。 

評測用例規模與約定 

對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。

我的**:

#include using namespace std;

int main()

int j, more, less, flag = 0;

for (i = 0; i < n; ++i)

if (nums[j] > nums[i]) else if(nums[j] < nums[i])

}if (more == less)

}if (!flag)

return 0;

}

挑了一道最簡單的作為第一道來寫,嗯,加油!

第一天刷題

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例1 輸入 l1 2 4,3 l2 5 6,4 輸出...

leetcode刷題第一天

給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。class solution def addtwonumbers se...

刷題第一天記錄

用於接收輸入的內容。注意 得到的是字串型別 有raise語句的地方就是異常,不管程式本身是不是真的有異常 建立乙個新的異常類 繼承自exception類 異常名描述 baseerror 所有異常的基類 systemexit 直譯器請求退出 keyboardinterrupt 使用者中斷執行 exce...