4 有趣的排序 百度2017春招

2022-08-24 01:42:09 字數 897 閱讀 5536

[程式設計題] 有趣的排序

時間限制:1秒

空間限制:32768k

度度熊有乙個n個數的陣列,他想將陣列從大到小排好序,但是萌萌的度度熊只會下面這個操作:

任取陣列中的乙個數然後將它放置在陣列的最後乙個位置。

問最少操作多少次可以使得陣列從小到大有序? 

輸入描述:

首先輸入乙個正整數n,接下來的一行輸入n個整數。(n <= 50, 每個數的絕對值小於等於1000)

輸出描述:

輸出乙個整數表示最少的操作次數。

輸入例子:

4 19 7 8 25

輸出例子:

2解題思路:這是一道貪心問題

對於陣列中的第i個元素,如果它後面有比它小的元素,這就說明第i個元素理應被移動到末尾去。

另外,應該優先移動較小的元素,這樣才能夠保證較小元素最後排在最前面。

實際上,這個問題沒這麼複雜。

用乙個備份陣列b,把a中元素放到b中,對b陣列進行排序。從第乙個排好序的元素開始,即最小的元素開始與沒排好序陣列元素比較,檢查有多少個已經是從小到大排好序的,位置可以不連續,但是大的元素必須在小的元素後面,統計出一共有 count個,這些元素是不需要移動的元素,一共有 n 個元素,所以需要移動 n - count 次

1 #include 2 #include 3

using

namespace

std;45

intmain()

618 sort(b,b+n);

19int j = 0;20

for(int i=0;i)

2127

if(j ==n)

28break;29

}30 cout32return0;

33 }

(百度17春招筆試題)有趣的排序

時間限制 1秒 空間限制 32768k 度度熊有乙個n個數的陣列,他想將陣列從小到大 排好序,但是萌萌的度度熊只會下面這個操作 任取陣列中的乙個數然後將它放置在陣列的最後乙個位置。問最少操作多少次可以使得陣列從小到大有序?輸入描述 首先輸入乙個正整數n,接下來的一行輸入n個整數。n 50,每個數的絕...

百度2017春招筆試真題

好久不寫題,dp 都這麼生疏了,想不到複雜度合適的dp 度度熊想去商場買一頂帽子,商場裡有n頂帽子,有些帽子的 可能相同。度度熊想買一頂 第三便宜的帽子,問第三便宜的帽子 是多少?直接將所有 存入se t 中,然後輸出第三小的即可。剛開始沒注意不能相等,直接排序輸出,結果沒ac 仔細看樣例後就能理解...

百度春招題目

選擇題 abc de 表示式是什麼?雜湊表解決方法的二次探測再雜湊法?linux系統中 與 與 與 有什麼區別 影象識別方法有哪幾種 模糊識別 特徵識別 結構識別 統計模式識別,這四種選擇三種 固定分割槽儲存管理 二分查詢 26 aa 2068是什麼進製 s abcdefg s 1 返回什麼 em演...