LeetCode-35 搜索插入位置
题目描述:
思路想法:
无疑是利用二分查找了,但是,当一个不存在数组中的元素,应该如何确定它在数组中的位置呢?
二分法在跳出循环时,说明这个元素没有在数组当中,但是,在跳出来之前,left和right即为相邻的元素;
当用target目标元素和mid比较的时候,target比中间的大应该选没跳出循环时的右边,否则选左边作为插入位置。
Java 代码:
class Solution {public int searchInsert(int[] nums, int target) {int tempL = 0;int tempR = 0;int right=nums.length;// 长度为1 的特殊情况if(right == 1){if(nums[0]>=target){return 0;}else{return 1;}}int left = 0;int mid = 0;boolean flag = false;
// 可以用二分法解决的while(left<right){tempR=right;tempL=left;mid = (left+right)/2;if(target>nums[mid]){left = mid+1;flag = true;}else if(target==nums[mid]){return mid;}else{right = mid;flag=false;}}if(flag){return right;}else{return left;} }
}
核心技能:
二分查找的精妙之处需要理解透彻。
LeetCode-35 搜索插入位置相关推荐
- leetcode 35. 搜索插入位置(二分法搜索失败的情况)
35. 搜索插入位置 思路:二分查找 模板: 如果查找成功,返回target在nums中的下标 //二分查找模板 //nums[0..n-1]为有序数组,target为目标 int left=0; i ...
- leetcode 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- LeetCode 35. 搜索插入位置(二分查找)
文章目录 1. 题目信息 2. 解题 2.1 暴力遍历 2.2 二分查找 1. 题目信息 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插 ...
- LeetCode 35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- Leetcode 35.搜索插入位置 二分
题目链接 思路: 是常规的二分法, 需要注意的是,当数字不存在的时候,需要返回插入该数进序列并保持有序的位置,即返回的是最后一个小于查找数target的位置.二分查找最后结束的位置,即退出循环时的左边 ...
- leetcode 35. 搜索插入位置 思考分析
目录 题目 暴力 二分迭代 二分递归 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- 【LeetCode】35. 搜索插入位置---JavaScript解法
[LeetCode]35. 搜索插入位置-JavaScript解法 原题链接:https://leetcode-cn.com/problems/search-insert-position/ /*** ...
- LeetCode Algorithm 35. 搜索插入位置
35. 搜索插入位置 Ideas 题目中给的提示已经很清楚了,要求时间复杂度是O(log n),这不是指着鼻子跟我说:给老子用二分查找嘛! Code Python def searchInsert(s ...
- 力扣35. 搜索插入位置python实现
35. 搜索插入位置 一.问题描述 二.算法思想 题目中的数组是排好序的,从头开始遍历,当发现列表中元素的值与target相等时返回该元素在列表中的位置i,否则继续查找,当发现列表中的元素比tar ...
最新文章
- linux中搭建vue-cli
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- 移植MT76x8 私有WIFI驱动V4.1.0.0到Openwrt 18.06所遇到的坑
- 六、Analysis of quicksort
- Swift面向对象基础(中)——Swift中的存储属性和计算属性
- 如何在sql存储过程中打log_SQL语句优化
- hibernate4中主要的配置文件配置
- Python 文档学习
- H3C交换机创建用户
- 【原创】Nginx+PHP-FPM优化技巧总结
- UIScrollView总结
- 微型计算机三部分基本组成,微型计算机的基本组成-电脑自学网
- AR图书,看着很美其实有点坑
- 可编程器件的编程原理
- 665. Non-decreasing Array
- 今日头条前端三轮面试面经
- TensorFlow机器翻译之moses切词(附:ActivePerl安装)
- java 牛客网之[动态规划 简单]NC3 nico和niconiconi
- Microsoft Visual Studio 的下载与安装
- Apache POI 插入图片至 Excel 的两种方法
热门文章
- html绝对定位怎么页面居中,html – 如何将绝对定位的元素居中?
- Linux键盘连续输入,关于修改键盘输入
- php cii订单导出,使用 kingcms.php 建立一个留言本【附模型代码】
- oracle 序列开始为2,【图片】【求助】为啥Oracle的sequence 第一次插入表从2开始。。【java吧】_百度贴吧...
- 虚拟机上的linux作为服务器吗,linux ftp服务器 虚拟机做服务器如何实现
- 西部数码linux云服务器,linux云服务器选择哪个版本
- Spring的注入方式详解
- androidStudio使用卡顿
- Android中style和theme的区别
- 对InputStreamReader 和 OutputStreamWriter的理解