博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Search Insert Position (二分查找)
阅读量:5743 次
发布时间:2019-06-18

本文共 1213 字,大约阅读时间需要 4 分钟。

题意

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
给定一个有序数组和一个目标值,查找出目标值在数组中出现的位置,如果没有出现,则返回它应该插入的位置。

解法

二分查找,记录mid值,查找结束后判断nums[mid] == target,如果相等的话就返回,不相等的话判断这个位置上的值是不是比target大,如果比它大那么target就直接插在mid这个位置,比target小的话就把target插入到下一个位置。

class Solution{public:    int searchInsert(vector
& nums, int target) { int left = 0; int right = nums.size() - 1; int mid = 0; int index = 0; while(left <= right) { mid = (left + right) >> 1; if(nums[mid] == target) { index = mid; break; } else if(nums[mid] < target) left = mid + 1; else right = mid - 1; } if(nums[index] == target) return index; if(target > nums[mid]) return mid + 1; else return mid; }};

转载于:https://www.cnblogs.com/xz816111/p/5889936.html

你可能感兴趣的文章
extjs4 tree 节点选中问题
查看>>
三层交换机和路由器的区别
查看>>
Sublime Text Build 3021 x86 正式版发布
查看>>
PS讲义
查看>>
浅析软文标题写作的三个问题
查看>>
ThinkSNSPlus 技术优势
查看>>
trafficserver的DNS响应主要流程源码注释
查看>>
swift笔记二 playground
查看>>
第2章 快速开始:HelloWorld 《Kotlin 极简教程》
查看>>
CenOS 6.3下mysql-5.5.25主从服务器配置
查看>>
ceph的pg分布
查看>>
how to set yum proxy server
查看>>
Linux Bash脚本练习2
查看>>
李彦宏:百度需要从这七点开始改变!
查看>>
关于QTableWidgetItem::setItemPrototype的理解
查看>>
IOS 手势之左右滑动
查看>>
Redis实现分布式锁的几种方案
查看>>
一文详解Linux系统常用监控工具
查看>>
我的友情链接
查看>>
Window上python开发--4.Django的用户登录模块User
查看>>