144 lines
3.1 KiB
Plaintext
144 lines
3.1 KiB
Plaintext
|
|
{
|
|||
|
|
"cells": [
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"# [35. 搜索插入位置](https://leetcode.cn/problems/search-insert-position)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"## 题目描述\n",
|
|||
|
|
"\n",
|
|||
|
|
" 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。\n",
|
|||
|
|
"\n",
|
|||
|
|
"请必须使用时间复杂度为 `O(log n)` 的算法。\n",
|
|||
|
|
"\n",
|
|||
|
|
"**示例 1:**\n",
|
|||
|
|
"\n",
|
|||
|
|
"```txt\n",
|
|||
|
|
"输入: nums = [1,3,5,6], target = 5\n",
|
|||
|
|
"输出: 2\n",
|
|||
|
|
"```\n",
|
|||
|
|
"\n",
|
|||
|
|
"**示例 2:**\n",
|
|||
|
|
"\n",
|
|||
|
|
"```txt\n",
|
|||
|
|
"输入: nums = [1,3,5,6], target = 2\n",
|
|||
|
|
"输出: 1\n",
|
|||
|
|
"```\n",
|
|||
|
|
"\n",
|
|||
|
|
"**示例 3:**\n",
|
|||
|
|
"\n",
|
|||
|
|
"```txt\n",
|
|||
|
|
"输入: nums = [1,3,5,6], target = 7\n",
|
|||
|
|
"输出: 4\n",
|
|||
|
|
"```\n",
|
|||
|
|
"\n",
|
|||
|
|
"**提示:**\n",
|
|||
|
|
"\n",
|
|||
|
|
"- `1 <= nums.length <= 10^4`\n",
|
|||
|
|
"- `-10^4 <= nums[i] <= 10^4`\n",
|
|||
|
|
"- `nums` 为 **无重复元素** 的 **升序** 排列数组\n",
|
|||
|
|
"- `-10^4 <= target <= 10^4`"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"---\n",
|
|||
|
|
"\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"## 解答\n",
|
|||
|
|
"\n",
|
|||
|
|
" "
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": null,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"class Solution(object):\n",
|
|||
|
|
" def searchInsert(self, nums, target):\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" :type nums: List[int]\n",
|
|||
|
|
" :type target: int\n",
|
|||
|
|
" :rtype: int\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" left, right = 0, len(nums) - 1\n",
|
|||
|
|
" while left < right:\n",
|
|||
|
|
" mid = (left + right) // 2\n",
|
|||
|
|
" if target > nums[mid]:\n",
|
|||
|
|
" left = mid + 1\n",
|
|||
|
|
" elif target < nums[mid]:\n",
|
|||
|
|
" right = mid\n",
|
|||
|
|
" else:\n",
|
|||
|
|
" return mid \n",
|
|||
|
|
" return left if nums[left] >= target else left + 1 # 注意这里的返回值 注意溢出"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 8,
|
|||
|
|
"id": "a1e23e83",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"4\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"test_nums = [1,3,5,6]\n",
|
|||
|
|
"test_target = 7\n",
|
|||
|
|
"solution_1 = Solution()\n",
|
|||
|
|
"result_1 = solution_1.searchInsert(test_nums, test_target)\n",
|
|||
|
|
"print(result_1) # 2"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": null,
|
|||
|
|
"id": "92764a56",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"metadata": {
|
|||
|
|
"kernelspec": {
|
|||
|
|
"display_name": "Python 3",
|
|||
|
|
"language": "python",
|
|||
|
|
"name": "python3"
|
|||
|
|
},
|
|||
|
|
"language_info": {
|
|||
|
|
"codemirror_mode": {
|
|||
|
|
"name": "ipython",
|
|||
|
|
"version": 3
|
|||
|
|
},
|
|||
|
|
"file_extension": ".py",
|
|||
|
|
"mimetype": "text/x-python",
|
|||
|
|
"name": "python",
|
|||
|
|
"nbconvert_exporter": "python",
|
|||
|
|
"pygments_lexer": "ipython3",
|
|||
|
|
"version": "3.8.10"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"nbformat": 5,
|
|||
|
|
"nbformat_minor": 10
|
|||
|
|
}
|