Files
leetcode/array/1binary search/35search-insert-position/python/35. 搜索插入位置.ipynb
flowerstonezl e1006fa09c first init
2026-01-29 17:04:05 +08:00

144 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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
}