当前位置: 首页 > news >正文

网站开发设计工程师宝钢工程建设有限公司网站

网站开发设计工程师,宝钢工程建设有限公司网站,租服务器,网站建设页面框架题目 给定一个排序数组和一个目标值#xff0c;在数组中找到目标值#xff0c;并返回其索引。 如果目标值不存在于数组中#xff0c;返回它将会被按顺序插入的位置。 示例 示例 1:输入: nums [1,3,5,6], target 5 输出: 2 示例 2:输入: nums [1,3,5,6], target 2 输出: …题目 给定一个排序数组和一个目标值在数组中找到目标值并返回其索引。 如果目标值不存在于数组中返回它将会被按顺序插入的位置。 示例 示例 1:输入: nums [1,3,5,6], target 5 输出: 2 示例 2:输入: nums [1,3,5,6], target 2 输出: 1 示例 3:输入: nums [1,3,5,6], target 7 输出: 4 解题思路 方法一首先本题思路找到第一个大于等于target的元素位置即插入位置。所以直接遍历数组找到第一个大于等于target的元素位置就是结果。但本题要求时间复杂度为log(n),那么需要进行优化。方法二二分查找。算法思路将数组分成两份left0mid(left right) / 2rightlength-1。根据mid与target的大小进一步划分区域。如果midtarget说明target在0到mid之间。反之在mid到length-1之间。将范围缩小(left mid 1 或 right  mid - 1 ), 继续比较。本题可以用二分查找的思想不过算法是查找相等数据本题需要查找第一个大于等于的数据。 这里说明下为什么以left进行返回 本题结果即找到第一个大于等于target的元素。在二分查找的过程中遇到的第一个mid对应元素大于target时mid对应的元素不一定是第一个大于target元素只是二分查找过程中遇到的第一个。此时需要继续缩小范围就继续比较。 那么什么情况下是第一个呢首先mid对应元素和target相等的时候直接返回mid位置即插入位置。大于的情况因为数组中不存在target那么一定会遍历到leftrightmid的时候如果这个元素大于target根据二分查找算法原理此时right mid - 1leftright跳出循环left即结果;如果这个元素小于targetleft mid1leftright跳出循环left即结果(已经加1)。这里不管是大于还是小于mid的其他位置都是已经确认了大于或小于target了。那么如果这个位置小于target那么它后面的就是第一个大于target的如果这个位置大于target那么他就是第一个大于target的。代码(Java) // 方法一 class Solution {public int searchInsert(int[] nums, int target) {if (nums null || nums.length 0) {return -1;}if (nums[0] target) {return 0;}if (nums[nums.length - 1] target) {return nums.length;}for (int i 0; i nums.length; i) {if (nums[i] target) {return i;}}return nums.length;} } // 方法二 class Solution {public int searchInsert(int[] nums, int target) {if (nums null || nums.length 0) {return -1;}if (nums[0] target) {return 0;}if (nums[nums.length - 1] target) {return nums.length;}int left 0;int right nums.length - 1;while (left right) {int mid (left right) / 2;if (nums[mid] target) {return mid;} else if (nums[mid] target) {left mid 1;} else {right mid - 1;}}return left;} }
http://www.pierceye.com/news/846277/

相关文章:

  • 粤icp备网站建设 中企动力广州网站开发是什
  • 佛山+网站建设开发系统 平台
  • 运输房产网站建设健康南充app
  • 营销型网站推广公司最好的app开发公司
  • 做网站硬件江西省城乡建设陪训网官方网站
  • 深圳做小程序网站开发短视频剪辑在哪里学
  • 集约化网站建设广州网站制作
  • 如何做网站链接wordpress 视
  • 北京专业建设网站公司做网站那几步
  • 网站版式布局宁波百度推广优化
  • 邵阳专业网站设计网站建设打造营销型网站
  • 网站内部链接的策略成都装修公司网站建设
  • 网页制作与网站建设答案联合易网北京网站建设公司怎么样
  • 虚拟主机安装网站wordpress xss
  • 营销网站的优点网上服务大厅用户登录
  • 阿里云网站建设服务费会计科目网站域名改了帝国cms
  • 塑业东莞网站建设网站建设的课件
  • 制作网页网站教程网站开发一般用
  • 网站换空间 sitewordpress 下载功能
  • 国外优秀的字体设计网站西安地产网站制作公司
  • 微网站和普通网站区别租腾讯服务器做网站行吗
  • 西安网站品牌建设福州建设发展集团网站
  • 网站源码怎么有wordpress内嵌播放器
  • 南宁网站快速排名提升一起来做网站17
  • 网站做数据分析什么软件是做网站的
  • 邯郸移动网站建设建设网站的报价
  • 做网站优化期间能收到网站吗科技创新与应用
  • 有没有做的很炫的科技型网站wordpress企业主题二次开发下载
  • 陕西住房和建设部网站深圳外贸建站模版
  • 自己做网站的各种代码wordpress只能访问主页