为有牺牲多壮志,敢教日月换新天。

[Swift]LeetCode35. 搜索插入位置 | Search Insert Position

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9697930.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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.

Example 1:

Input: [1,3,5,6], 5
Output: 2

Example 2:

Input: [1,3,5,6], 2
Output: 1

Example 3:

Input: [1,3,5,6], 7
Output: 4

Example 4:

Input: [1,3,5,6], 0
Output: 0

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

你可以假设数组中无重复元素。

示例 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


 1 class Solution {
 2     func searchInsert(_ nums: [Int], _ target: Int) -> Int {
 3         //如果nums为nil则返回0
 4         if nums.isEmpty{return 0}
 5         //二分查找也称折半查找(Binary Search)
 6         var low:Int = 0
 7         var high:Int = nums.count-1
 8         while(low <= high)
 9         {
10             var mid = (low+high)/2
11             if nums[mid]==target
12             {
13                 return mid
14             }
15             else if nums[mid]<target
16             {
17                 low = mid+1
18             }
19             else
20             {
21                 high = mid-1
22             } 
23         }
24         return low         
25     }
26 }
posted @ 2018-09-25 09:25  为敢技术  阅读(619)  评论(0编辑  收藏  举报