トピック
leetcode35。挿入位置の検索
ソートされた配列とターゲット値を指定して、配列内のターゲット値を見つけ、そのインデックスを返します。
ターゲット値が配列に存在しない場合は、挿入される位置を順番に返します。
配列に重複する要素はないと想定できます。
例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
コード
// C
int searchInsert(int* nums, int numsSize, int target) {
int i = 0;
while ((i < numsSize) && (nums[i] < target)){
++i;
}
return i;
}
// C++
#include <vector>
#include <algorithm>
using namespace std;
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
auto it = nums.begin();
while((it != nums.end()) && (*it < target)){
++it;
}
return it - nums.begin();
}
};
テスト
#include <iostream>
int main() {
{
// C
int nums[] = {
1, 3, 5, 6};
int target = 5;
cout << searchInsert(nums, 4, 5) << endl;
}
{
// C++
std::vector<int> nums = {
1, 3, 5, 6};
int target = 5;
Solution s;
cout << s.searchInsert(nums, target);
}
cin.get();
return 0;
}
- 結果:
2
2