有個馬戲團正在設計疊羅漢的表演節目,乙個人要站在另一人的肩膀上。出於實際和美觀的考慮,在上面的人要比下面的人矮一點且輕一點。已知馬戲團每個人的身高和體重,請編寫**計算疊羅漢最多能疊幾個人。
示例:輸入:height = [65,70,56,75,60,68] weight = [100,150,90,190,95,110]
輸出:6
解釋:從上往下數,疊羅漢最多能疊 6 層:(56,90), (60,95), (65,100), (68,110), (70,150), (75,190)
class
solution};
//先對身高排序,若相同,再對身高相同的進行體重降序排列,這樣在找到的最長遞增子串行中就不會取到多個身高相同而體重遞增的人了,這樣不符合題意 int bestseqatindex(vector& height, vector& weight)
sort
(guys.
begin()
,guys.
end(),
cmp())
;//pair型可以呼叫排序函式,第三個引數為排序方式,進行排序
vector <
int> up;
up.push_back
(guys[0]
.second)
;for
(i=1
;i)//如果大,就直接插入
else
//否則,呼叫lower_bound()找出建立中的最長子序列中大於guys[i]的最小值,並替換
}return up.
size()
;}};
leetcode 面試題專題
面試題51.陣列中的逆序對 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。利用歸併排序,將陣列分成兩部分,前面一部分和後面一部分,進行歸併的時候,需要比較兩個陣列的數值大小,如果第二個陣列的值小的話,代表前乙個陣列剩下的都...
位元組面試題 leetcode
給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...
微軟面試題 1
題 編寫反轉字串的程式,要求優化速度 優化空間。分析 構建兩個迭代器p 和 q 在一次遍歷中,p的位置從字串開頭向中間前進,q從字串末尾向中間後退,反轉字串只要每次遍歷都交換p和q所指向的內容即可,直到p和q在中間相遇,這時迴圈次數剛好等於 字串的長度 2。實現 view plain author ...