騰訊2017 求相差最小和相差最大的對數

2021-09-12 11:53:48 字數 1311 閱讀 9500

#include

#include

#include

using namespace std;

intmain()

if(n ==2)

//3個數以上的情況

vector<

int> data;

while

(n--

)int length=data.

size()

;sort

(data.

begin()

,data.

end())

;//先排序比較好處理,從小到大

//先求最小的,肯定是相鄰的相減得到

int min_val=

abs(data[1]

-data[0]

);//得出乙個比較值

for(

int i=

2;i++i)

//逐項相鄰差值相比較,找出最小值

//開始統計有最小差值的對數

int min_count=0;

//如果最小差值為0,需要用組合的思想找出相同的數字能組成的對數,以下是遍歷查詢

if(min_val==0)

}}//如果最小差值大於0,必然是尋找相鄰差值相同的對數

else

}//求差最大的對數,最小值的個數乘以最大值的個數(如果最大的不等於最小的)

int max_val=data[length-1]

-data[0]

;int max_count=0;

int a,b;

a=b=0;

//找出最小的數有多少個相同的

for(

int i=

0;i++i)

//找出最大的數有多少個相同的

for(

int i=length-

1;i>=

0;i--

)//此處判斷如果最大值和最小值相同,即差值為0,直接用排列組合方式求出個數

if(max_val==0)

max_count=length*

(length-1)

/2;else max_count=a*b;

//輸出答案

cout<' '<}return0;

}

vector<

int> line // 定義乙個容器line(可以簡單理解為乙個陣列,只是陣列大小可變)

for(

int i =

0; i <

10; i ++

)

求滑動視窗中的最大值和最小值

滑動視窗 一般使用雙指標演算法,左指標l和右指標r之間的空間稱為視窗,由於指標是不斷移動的,從而視窗也可以移動,稱為滑動視窗。滑動視窗的最值 由於視窗是移動的,移動的過程中有新元素的加入也有舊元素的彈出。每一次元素的加入或彈出都可能使視窗中元素的最值發生變化,也正是會發生變化,使得無法直接獲取任意時...

求最小公倍數和最大公約數的方法

書本第四章第01題,分別求出兩個整數的最大公約數和最小公倍數,用主函式呼叫兩個函式,並輸出結果,兩個整數由鍵盤輸入。最小公倍數 解法一 借助最大公約數求最小公倍數 步驟 一 利用輾除法或其它方法求得最大公約數 二 最小公倍數等於兩數之積除以最大公約數。最小公倍數 解法二 質因數分解 舉例 12和27...

求最大公約數和最小公倍數的演算法

本題要求兩個給定正整數的最大公約數和最小公倍數。輸入在一行中給出兩個正整數m和n 1000 在一行中順序輸出m和n的最大公約數和最小公倍數,兩數字間以1空格分隔。511 29273 2044 兩個數的乘積等於兩個數的最大公約數乘於最小公倍數 輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德...