有乙個排過序的陣列,包含n個整數,但是這個陣列向左進行了一定長度的移位,例如,原陣列為[1,2,3,4,5,6],向左移位5個位置即變成了[6,1,2,3,4,5],現在對於移位後的陣列,需要查詢某個元素的位置。請設計乙個複雜度為log級別的演算法完成這個任務。
給定乙個int陣列a,為移位後的陣列,同時給定陣列大小n和需要查詢的元素的值x,請返回x的位置(位置從零開始)。保證陣列中元素互異。
測試樣例:
[6,1,2,3,4,5],6,6
返回:0
大家覺得是不是和二分查詢特別相像,是的,此題的解法是在二分搜尋的基礎上加了一些限制條件即可
public int findelement(int a, int n, int x)
else {
//a[mid]>a[left]說明左邊是有序的,且xa[left]&&x****自
1230 元素查詢
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond description 給出n個正整數,然後有m個詢問,每個詢問乙個整數,詢問該整數是否在n個正整數 現過。輸入描述 input description 第一行兩個整數 n 和m。第二行n個正整數 1 n 100000 ...
C C 程式設計題刷題 最小非零元素
題目描述 q哥給了小q乙個長度為n正整數序列ai。q哥要求小q重複以下操作步驟k輪 1 發現最小的非零元素x。2 列印x。3 將序列中所有非零元素減x。小q把這個艱鉅的任務交給了你,希望你能幫幫他。輸入描述 輸入包括兩行。第一行包括兩個正整數n和k 1 n,k 105 第二行包括n個正整數ai 1 ...
C C 程式設計題刷題 最小非零元素
題目描述 q哥給了小q乙個長度為n正整數序列ai。q哥要求小q重複以下操作步驟k輪 1 發現最小的非零元素x。2 列印x。3 將序列中所有非零元素減x。小q把這個艱鉅的任務交給了你,希望你能幫幫他。輸入描述 輸入包括兩行。第一行包括兩個正整數n和k 1 n,k 105 第二行包括n個正整數ai 1 ...