美文网首页LeetCode题库-Swift解题
35. 搜索插入位置(Swift版)

35. 搜索插入位置(Swift版)

作者: Mage | 来源:发表于2019-03-20 21:16 被阅读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

二、解题

方法一:
直接遍历(searchInsert())
时间复杂度:O(n)。空间复杂度:O(1)。
方法二:
用二分法(searchInsert1())
时间复杂度:O(log(n))。空间复杂度:O(1)。

实际在LeetCode上运行测试用例,方法一和方法二执行时间差不多,想来应该是测试用例数据量比较小的原因。

三、代码实现

    class Solution {

        func searchInsert(_ nums: [Int], _ target: Int) -> Int {
            for (index, n) in nums.enumerated() {
                if n >= target {
                    return index
                }
            }
            return nums.count
        }
        func searchInsert1(_ nums: [Int], _ target: Int) -> Int {
            var low = 0
            var high = nums.count
            var mid = 0
            
            while low < high {
                mid = (high + low) / 2
                if nums[mid] > target {
                    high = mid
                }else if nums[mid] < target {
                    low = mid + 1
                }else{
                    return mid
                }
            }
            return low
        }
    }

Demo地址:github

相关文章

  • 【LeetCode通关全记录】35. 搜索插入位置

    【LeetCode通关全记录】35. 搜索插入位置 题目地址:35. 搜索插入位置[https://leetcod...

  • 35. 搜索插入位置(Swift版)

    一、题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按...

  • 35. 搜索插入位置

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

  • 35. 搜索插入位置

    自己解法 有序数组就是二分查找的依据,二分查找完了以后,能找到target直接返回,不能找到的话,就是left和r...

  • 35. 搜索插入位置

    题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按...

  • 35. 搜索插入位置

    35. 搜索插入位置 问题 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组...

  • 35.搜索插入位置

    题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被...

  • 35. 搜索插入位置

  • 35. 搜索插入位置

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

  • 35. 搜索插入位置

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

网友评论

    本文标题:35. 搜索插入位置(Swift版)

    本文链接:https://www.haomeiwen.com/subject/vhrtvqtx.html