每日一题---35. 搜索插入位置[力扣][Go]

简介: 每日一题---35. 搜索插入位置[力扣][Go]

题目描述

解题代码

// 遍历
func searchInsert(nums []int, target int) int {
  index := 0
  for i, num := range nums {
    index = i
    if target <= num {
      break
    }
    index++
  }
  return index
}
// 二分法
func searchInsert(nums []int, target int) int {
  n := len(nums)
  // 定义左右闭区间[l , r]
  l := 0
  r := n-1
  // 因为是闭区间所以 l = r 也有效
  for l <= r {
    // 控制范围
    mid := l + (r - l)/2
    if nums[mid] > target {
      // target 在左区间,所以[l, mid - 1]
      r = mid - 1
    } else if nums[mid] < target {
      // target 在右区间,所以[mid + 1, r]
      l = mid + 1
    } else {
      // 1. 目标值等于数组中某一个元素  return mid;
      return mid
    }
  }
  // 2.目标值在数组所有元素之前 3.目标值插入数组中 4.目标值在数组所有元素之后 return r + 1;
  return r + 1
}

提交结果


相关文章
|
21天前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
36 6
|
21天前
|
算法
力扣240 搜索二维矩阵II
力扣240 搜索二维矩阵II
|
21天前
|
Go
golang力扣leetcode 240.搜索二维矩阵II
golang力扣leetcode 240.搜索二维矩阵II
23 0
|
21天前
|
Go
golang力扣leetcode 79.单词搜索
golang力扣leetcode 79.单词搜索
27 0
|
21天前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
32 8
|
21天前
|
算法
【Leetcode 74】搜索二维矩阵 —— 二分查找|矩阵
给你一个满足下述两条属性的`m x n`整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数
|
21天前
|
算法 测试技术 C#
【二分查找】【z型搜索】LeetCode240:搜索二维矩阵
【二分查找】【z型搜索】LeetCode240:搜索二维矩阵
|
21天前
|
算法
leetcode-74:搜索二维矩阵
leetcode-74:搜索二维矩阵
26 0
|
21天前
|
算法
leetcode-240:搜索二维矩阵 II
leetcode-240:搜索二维矩阵 II
22 0
|
21天前
|
Go
golang力扣leetcode 81.搜索旋转排序数组II
golang力扣leetcode 81.搜索旋转排序数组II
20 0