首页 > 编程语言 >算法入门--搜索插入位置

算法入门--搜索插入位置

时间:2023-01-28 10:11:05浏览次数:41  
标签:target nums -- 示例 mid int 算法 low 入门

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

 

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

我的写法:

 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4      int hig=nums.size()-1;int low =0;int mid=0;
 5      while(low<=hig)
 6      {
 7           mid=(low+hig)/2;
 8          if(target==nums[mid])
 9          {
10              return mid;
11          }
12          else if(target>nums[mid])
13          {
14              low=mid+1;
15          }
16          else 
17          {
18              hig=mid-1;
19          }
20      }
21 if(low>mid)
22 {
23 return low;
24 }
25    
26 return low;
27  }
28 };

但是官方的写法更加厉害

 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4         int n = nums.size();
 5         int left = 0, right = n - 1, ans = n;
 6         while (left <= right) {
 7             int mid = ((right - left) >> 1) + left;
 8             if (target <= nums[mid]) {
 9                 ans = mid;
10                 right = mid - 1;
11             } else {
12                 left = mid + 1;
13             }
14         }
15         return ans;
16     }
17 };
18 
19 作者:LeetCode-Solution
20 链接:https://leetcode.cn/problems/search-insert-position/solution/sou-suo-cha-ru-wei-zhi-by-leetcode-solution/
21 来源:力扣(LeetCode)
22 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:target,nums,--,示例,mid,int,算法,low,入门
From: https://www.cnblogs.com/daitu66/p/17069720.html

相关文章

  • SAPGUI 里运行的老程序,如何对新的 SAP Fiori Belize Theme 进行适配?
    ​​SAPGUI里运行的老程序,如何对新的SAPFioriBelizeTheme进行适配?​​ 为了尽快使现有应用程序的外观适应Fiori2.0设计和可用性范例,而无需在技术上切换到F......
  • SAP Fiori Belize 主题应用在 SAPGUI 里的一些要点
    ​​SAPFioriBelize主题应用在SAPGUI里的一些要点​​ 为了遵守Fiori设计指南,SAPGUI里的Belize主题需要在某些方面与之前提供的所有SAPGUIforWindows/......
  • SAP Corbu Theme 在浏览器和 SAPGUI 应用中的使用场景
    ​​SAPCorbuTheme在浏览器和SAPGUI应用中的使用场景​​ SAPCorbuTheme是一种清新、现代且独特的视觉标识。它以瑞士建筑师兼设计师Charles-ÉdouardJea......
  • 一款开源的 Angular Storefront 应用介绍,代号 Spartacus 诞生的历史背景
    ​​一款开源的AngularStorefront应用介绍,代号Spartacus诞生的历史背景​​ 长期以来,人们认为原生应用(nativeApplication)是网站移动和桌面版本的良好辅助。......
  • SAPGUI 里的 Belize Theme
    ​​SAPGUI里的BelizeTheme​​ 为了能够尽快使现有SAPGUI中运行的应用程序的外观和感觉适应Fiori2.0设计和可用性范例——从技术上讲,即使无需转换为Fiori......
  • 通过具体的两个例子,学习 ABAP 动态断点的使用诀窍
    ​​通过具体的两个例子,学习ABAP动态断点的使用诀窍​​ 本教程之前的步骤,我们学习了SAPGUI中ABAP调试器的使用方式:​​13.最浅显易懂的SAPGUI里ABAP调试......
  • 工业物联网方案中数据采集模块的作用
    随着工业4.0的发展,工业物联网近几年快速发展,不断改变着传统工业领域的发展方向。工业物联网要实现设备和云端的连接、数据的传递,所以在这过程中有两大模块是缺一不可,一方面......
  • 使用OpenSSL获取文件的MD5值
    1.基本原理OpenSSL库提供了MD5的计算,使用该库计算文件的MD5值 2.实现代码 1#include<openssl/md5.h>2#include<fstream>3#include<iomanip>45......
  • ifc4x3 附录E示例-Georeference_Tin_2
    ifc4x3 附录E示例-Georeference_Tin_2示例概述意图IFC4x3RC1此场景中,所有三角形都只有一种颜色的锡。没有空隙。锡的坐标为地图比例,但其本地原点为(256400.0、701160......
  • 00-五个原则
    00-五个原则单一职责原则就一个类而言,应该仅有一个引起它变化的原因开放-封闭原则软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改(对扩展开放,对修改封闭;在生活......