/**思路:先將陣列元素放入list集合和優先佇列,使用優先佇列出棧最小值,題目描述:
* 我們希望乙個序列中的元素是各不相同的,但是理想和現實往往是有差距的。現在給出乙個序列a,其中難免有些相同的元素,現在提供了一種變化方式,使得經過若干次操作後一定可以得到乙個元素各不相同的序列。
* 這個操作是這樣的,令x為序列中最小的有重複的數字,你需要刪除序列左數第乙個x,並把第二個x替換為2*x。
* 請你輸出最終的序列。
* 例如原序列是[2,2,1,1,1],一次變換後變為[2,2,2,1],兩次變換後變為[4,2,1],變換結束
** 輸入描述
* 輸入第一行包含乙個正整數n,表示序列的長度為n。(1<=n<=50000) 第二行有n個整數,初始序列中的元素。(1<=a_i<=10^8) 輸出描述
* 輸出包含若干個整數,即最終變換之後的結果。
*/
在list集合中查詢該元素是否重複,如果重複,則對list集合進行修改刪除操作(更新),
將更新後的資料存入新的優先佇列中。繼續進行第二輪出棧。
如果最小元素沒有重複,則list集合不更新,優先佇列也不更新。
如此重複,知道list集合中沒有重複元素為止。
public static listadjustarray(int nums)iteratoriterator = list.iterator();
priorityqueuequeue = new priorityqueue();
//入佇列
while (iterator.hasnext())
for (int n = 0; n < queue.size(); n++)
if (count == 2) }}
//如果有重複資料,刪除第乙個重複資料,修改第二個重複資料,並且更新佇列
if (count == 2)
}//更新計數器
count = 0;
//更新n
n = 0;
}return list;
}
LeetCode菜鳥從零開始 第二題 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 2 4 3 5 6 4 輸出 7 0...
上機第二題
題目 2 陣列與函式的綜合應用 已知 int a 5 b 5 編寫程式查詢陣列中是否存在某個指定元素 將陣列a和陣列b中的素數不重不漏地合併到 乙個vector容器c中,然後按照下標訪問的方式手動對容器c中的資料,按從小到大順序重新 排序。要求依次實現 編寫順序查詢法函式和折半查詢法函式,分別在陣列...
第二章 編寫Spider
元件描述 型別engine 引擎,框架的核心,其他所有元件在其控制下協同工作 內部元件 scheduler 內部元件 內部元件 spider 使用者實現 middleware 中介軟體,負責對request物件和response物件進行處理 可選元件 item pipeline 資料管道,負責對爬取...