C語言基礎練習題 二分查詢

2021-10-11 02:33:56 字數 938 閱讀 4310

在排序陣列中查詢元素的第乙個和最後乙個位置

給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。

如果陣列中不存在目標值 target,返回 [-1, -1]。

示例 1:

輸入:nums = [5,7,7,8,8,10], target = 8

輸出:[3,4]

示例 2:

輸入:nums = [5,7,7,8,8,10], target = 6

輸出:[-1,-1]

示例 3:

輸入:nums = , target = 0

輸出:[-1,-1]

開始看到這道題,大師匈就在想用遍歷陣列的方法去查詢,但是凡事碰到這種查詢型別的題目,應該要想到二分查詢去做。

int

search

(int

* nums,

int numssize,

int target,bool left_or_right)

else

}return result;

}int

*searchrange

(int

* nums,

int numssize,

int target,

int* returnsize)

result[0]

=-1;

result[1]

=-1;

return result;

}

在這裡有乙個比較巧的是對標誌位left_or_right的使用,看似簡單,但這確實乙個很好的技巧,很多人包括大師匈經常會直接暴力的使用條件語句,使得產生了更多的**,這裡應該記下來這種程式小技巧。

題目比較簡單,大師匈不在多說了,但是這種看似簡單的基礎題,卻能鍛鍊紮實的基礎,一起進步,共勉。

python基礎練習題(二) 分支結構練習題

一 單選題 1.哪個選項是實現多路分支的最佳控制結構?5.0分 a if b if elif else c try d if else 2.關於程式的控制結構,哪個選項的描述是錯誤的?5.0分 a 流程圖可以用來展示程式結構 b 順序結構有乙個入口 c 控制結構可以用來更改程式的執行順序 d 迴圈結...

NYOJ練習題 刪除元素(二分查詢)

時間限制 1000 ms 記憶體限制 65535 kb 描述 題意很簡單,給乙個長度為n的序列,問至少刪除序列中多少個數,使得刪除後的序列中的最大值 2 最小值 輸入 多組測試資料,每組測試資料報含兩行。第一行乙個整數n n 10 5 序列中元素的個數。第二行依次輸入n個數a1,a2 an,1 ai...

二分練習題1 查詢元素 題解

題目描述 現在告訴你乙個長度為 n 的有序陣列 a 1,a 2,a n 以及 q 次詢問,每次詢問會給你乙個數 x 對於每次詢問,你需要確定在陣列中是否存在某乙個元素 a i x 輸入格式 輸入的第一行包含乙個整數 n 1 le n le 100000 用於表示陣列中元素的個數。輸入的第二行包含 n...