Code12検索挿入位置

トピック

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

おすすめ

転載: blog.csdn.net/luoshabugui/article/details/109538301