有序佇列問題思考

2021-10-14 14:24:49 字數 463 閱讀 5588

思考方向:從簡單到複雜

k=1(想到並分析了):每次只能挪動乙個數字,相當於乙個環,數字之間的順序沒有改變。那麼最重要的就是數字之間的相互位置了(環上的)那麼只要把第二大的數字跟在第乙個的後面,第三的跟在第四的後面以此類推…

k=2(想不出來了,不知道怎麼辦,分析不出特性)

基於k=1,把額外的乙個位置拎出來,通過環思考。如果是環,那麼最重要的是相對位置關係,第一小後面跟著第二小,第二小後面跟著第三小…上帝視角,可以通過一次遍歷提前知道所有的大小關係

首先k=2功能一定大於k=1.通過只移動乙個點我們可以把可移動區間定位到任意兩個數字上。

我們把其中乙個數字保留不操作,那麼剩下的還是乙個環可以隨時旋轉。

1.找到並保留第二小的數字,直到轉到第一小的數字,放到第一小的後面,第二小和第一小的相對順序搞定。後面保持一起轉動。

2.找到並保留第三小的數字,知道轉到第二小的數字,放到第二小的後面

有限有序佇列

class limitsortedqueue public limitsortedqueue int maxqueuelenght this public void inqueue t item if queue.count 0 int idx 0 t currentitem null doif c...

3 有序佇列

題目描述 給出了乙個由小寫字母組成的字串 s。然後,我們可以進行任意次數的移動。在每次移動中,我們選擇前 k 個字母中的乙個 從左側開始 將其從原位置移除,並放置在字串的末尾。返回我們在任意次數的移動之後可以擁有的按字典順序排列的最小字串。示例 1 輸入 s cba k 1 輸出 acb 解釋 在第...

python有序佇列 Python 佇列

所謂佇列 佇列是有序集合,新增操作發生在 尾部 移除操作則發生在 頭部 新元素從尾部進入 佇列,然後一直向前移動到頭部,直到成為下乙個被移除的元素。新新增的元素必須在佇列的尾部等待,在佇列中時間長的元素則排在前面。這種排序 原則被稱作 fifo first in first out 即先進先出,也稱...