トピック:
ソートされた配列とターゲット値を指定して、配列内のターゲット値を見つけ、そのインデックスを返します。ターゲット値が配列に存在しない場合は、順番に挿入される位置を返します。
配列に重複する要素がないと想定できます。
例1:
入力:[1,3,5,6]、5
出力:2
例2:
入力:[1,3,5,6]、2
出力:1
例3:
入力:[1,3,5,6]、7
出力:4
例4:
入力:[1,3,5,6]、0
出力:0
問題解決のアイデア:
これは順序付き配列であるため、配列を反復処理し、target以上の最初の数値を見つけて、この数値の添え字を返します。
トラバース後に数値が見つからない場合は、配列のサイズが返されます。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++){
if(target <= nums[i]){
return i;
}
}
return nums.size();
}
};