計蒜客 尋找插入位置 (二分查詢)

2022-07-12 10:24:09 字數 939 閱讀 6705

給定乙個已經公升序排好序的陣列,以及乙個數 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。

輸出格式

輸出一行,為要求返回的結果。

樣例輸入

3

1 3 5

2

樣例輸出

1

1 #include 2

using

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,分別表示陣列的長度和查詢的次數...