• 035搜索插入位置


     1 #include "000库函数.h"
     2 
     3 //第一眼,感觉没什么考虑算法的,就普通做就好了
     4 //又因为是有序 的,故使用二分法最好了【别再太真爱用遍历,傻子才会一上来就遍历】    12ms
     5 class Solution {
     6 public:
     7     int searchInsert(vector<int>& nums, int target) {
     8         if (nums.size() == 0 || target < nums[0])return 0;//为空或者是太小,则在首位插入
     9         if (target > nums[nums.size() - 1])return nums.size();//太大在尾部插入
    10         int left = 0, right = nums.size() - 1;
    11         while (left < right) {
    12             int mid = left + (right - left) / 2;
    13             if (nums[mid] == target)return mid;
    14             if (nums[mid] < target) left = mid + 1;//使用这种判断,会找到最左边的目标值
    15             else right = mid;
    16         }        
    17         return right;
    18     }
    19 };
    20 
    21 void T035() {
    22     Solution s;
    23     vector<int> nums = { 1,3,5,5,6 };
    24     cout << "*********************************" << endl;
    25     cout << s.searchInsert(nums, 4) << endl;
    26     cout << s.searchInsert(nums, 3) << endl;
    27     cout << s.searchInsert(nums, 5) << endl;
    28     cout << s.searchInsert(nums, 6) << endl;
    29     cout << s.searchInsert(nums, 7) << endl;
    30 
    31 }
  • 相关阅读:
    Scanner类
    BufferedReader类
    打印类
    管道流
    内存操作流
    转换流——OutputStreamWriter类与InputStreamReader类
    Java字节流与字符流基本操作
    RandomAccessFile类
    File类
    Timer类和TimerTask类
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10552049.html
Copyright © 2020-2023  润新知