給定乙個已經公升序排好序的陣列,以及乙個數 target,如果 target在陣列中,返回它在陣列中的位置。
否則,返回 target插入陣列後它應該在的位置。
假設陣列中沒有重複的數。以下是簡單的示例:
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
輸入格式
第一行輸入乙個整數 n。
第二行輸入 n個整數,表示陣列a[n]
。
第三行輸入 target。
輸出格式
輸出一行,為要求返回的結果。
樣例輸入
31 3 5
2
樣例輸出
1
1 #include 2using
namespace
std;34
int binarysearch(int *a, int left, int right, int
target)
16//
target不在陣列中,而且此時left == right
17if(target 18return
middle;
19else
20return middle + 1;21
}22intmain()
29 cin >>target;
30int ans = binarysearch(a, 0, n - 1
, target);
31 cout << ans <32return0;
33 }
計蒜客 尋找插入位置
給定乙個已經公升序排好序的陣列,以及乙個數 targetta rget 如果 targetta rget 在陣列中,返回它在陣列中的位置。否則,返回 targetta rget 插入陣列後它應該在的位置。假設陣列中沒有重複的數。以下是簡單的示例 1,3,5,6 5 2 1,3,5,6 2 1 1,3...
計蒜客 尋找插入位置
給定乙個已經公升序排好序的陣列,以及乙個數 targettarget,如果 targettarget 在陣列中,返回它在陣列中的位置。否則,返回 targettarget 插入陣列後它應該在的位置。假設陣列中沒有重複的數。以下是簡單的示例 1,3,5,6 5 2 1,3,5,6 2 1 1,3,5,...
計蒜客 1562 二分查詢
蒜頭君手上有個長度為 nn 的陣列 aa。由於陣列實在太大了,所以蒜頭君也不知道陣列裡面有什麼數字,所以蒜頭君會經常詢問在陣列 aa 中,比 xx 大的最小值是多大?但是這次蒜頭君要求這個數字必須大於 xx,不能等於 xx。輸入格式 第一行輸入兩個整數 nn 和 mm,分別表示陣列的長度和查詢的次數...