在排序陣列中查詢元素的第乙個和最後乙個位置
給定乙個按照公升序排列的整數陣列 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...