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

专门做招商的网站是什么意思友情链接交换平台有哪些

专门做招商的网站是什么意思,友情链接交换平台有哪些,金湖网站推广,400网站建设电话文章目录 一、题目二、C# 题解 一、题目 搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素&#xff…

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。

示例1:

输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5
输出: 8(元素5在该数组中的索引)

示例2:

输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 11
输出: -1 (没有找到)

提示:

  • arr 长度范围在[1, 1000000]之间

  点击此处跳转题目。

二、C# 题解

  类似二分查找,但由于优先返回第一次出现的 target,因此主要思想如下:

  • 取中间元素 arr[mid],判断是否为 target。如果是,不直接返回,而转到步骤 2。
  • 查找左半部分,结果记为 left。如果查找到结果(left >= 0),则直接返回 left。
  • 若未找到,最后查找右半部分,返回结果。

  上述方式类似前序遍历树结构,返回第一个查找的值。

  同时,做出如下剪枝优化:

  1. 数组被旋转,则数组内所有元素都在区间 [ a r r [ i ] , + ∞ ) ∪ ( − ∞ , a r r [ j ] ] [arr[i], +\infty)\cup(-\infty,arr[j]] [arr[i],+)(,arr[j]] 内。若 target 不在该区间内,直接返回 -1。
    15 , 16 , 19 , 20 , 25 , 1 , 3 , 4 , 5 , 7 , 10 t a r g e t : 12 \begin{aligned} & \sout{15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10} & target:12 \\ \end{aligned} 15,16,19,20,25,1,3,4,5,7,10target:12

  2. 数组未被旋转(有序),则数组内所有元素都在区间 [ a r r [ i ] , a r r [ j ] ] [arr[i], arr[j]] [arr[i],arr[j]] 内。若 target 不在该区间内,直接返回 -1。
    1 , 3 , 4 , 5 , 7 , 10 , 15 , 16 , 19 , 20 , 25 t a r g e t : 30 \begin{aligned} & \sout{1, 3, 4, 5, 7, 10, 15, 16, 19, 20, 25} & target:30 \\ \end{aligned} 1,3,4,5,7,10,15,16,19,20,25target:30

  3. mid 查找到值,即 arr[mid] == target。则只查看左枝,减去右枝。
    { 15 , 16 , 19 , 20 , 1 } , 2 ‾ , 3 , 4 , 5 , 7 , 10 t a r g e t : 2 \begin{aligned} & \{15, 16, 19, 20, 1\}, \underline{\bold{2}}, \sout{3, 4, 5, 7, 10} & target:2 \\ \end{aligned} {15,16,19,20,1},2,3,4,5,7,10target:2

  4. 右枝有序且 target 在该区间内,则忽略左枝,只看右枝。
    15 , 16 , 19 , 20 , 1 , 2 ‾ , { 3 , 4 , 5 , 7 , 10 } t a r g e t : 5 \begin{aligned} & \sout{15, 16, 19, 20, 1}, \underline{2}, \{3, 4, 5, 7, 10\} & target:5 \\ \end{aligned} 15,16,19,20,1,2,{3,4,5,7,10}target:5

public class Solution {public int Search(int[] arr, int target) {return Partition(arr, 0, arr.Length - 1, target);}public int Partition(int[] arr, int i, int j, int target) {if (i > j) return -1; // 递归出口// 剪枝if (arr[j] < target && target < arr[i]) return -1; // case 1, 直接返回if (target < arr[i] && target > arr[j]) return -1; // case 2, 直接返回int mid = (i + j) / 2, left;if (arr[mid] == target) { // case 3, 减去右半部分left = Math.Min(Partition(arr, i, mid - 1, target), mid);return left == -1 ? mid : left;}if (arr[mid] < target && target < arr[j]) // case 4, 减去左半部分return Partition(arr, mid + 1, j, target);// 优先返回最前面的结果left = Partition(arr, i, mid - 1, target);if (left != -1) return left;return Partition(arr, mid + 1, j, target);}
}
  • 时间:84 ms,击败 100.00% 使用 C# 的用户
  • 内存:39.92 MB,击败 100.00% 使用 C# 的用户

  还可以先用二分查找转折点 k,此时考虑起点为 k 终点为 k - 1 的循环数组,即,从 [k, j] 续上 [i, k - 1] 的有序数组,对其使用二分查找第一个元素。详细代码这里就不附上了。

↱ k 15 , 16 , 19 , 20 , 1 ‾ , 2 , 3 , 4 , 5 , 7 , 10 t a r g e t : 5 ⇓ − , − , − , − , 1 ‾ , 2 , 3 , 4 , 5 , 7 , 10 , 15 , 16 , 19 , 20 t a r g e t : 5 \begin{aligned} & \hspace{5.7em} \Rsh k \\ & 15, 16, 19, 20, \underline{1}, 2, 3, 4, 5, 7, 10 & target:5 \\ & \hspace{5.7em} \Downarrow\\ & -,\ -,\ -,\ -, \hspace{0.1em} \underline{1}, 2, 3, 4, 5, 7, 10, 15, 16, 19, 20 & target:5 \\ \end{aligned} k15,16,19,20,1,2,3,4,5,7,10, , , ,1,2,3,4,5,7,10,15,16,19,20target:5target:5


文章转载自:
http://pustular.gtqx.cn
http://polysulphide.gtqx.cn
http://bullrush.gtqx.cn
http://scotopic.gtqx.cn
http://donatory.gtqx.cn
http://cheekily.gtqx.cn
http://cancerology.gtqx.cn
http://packing.gtqx.cn
http://obliging.gtqx.cn
http://vroom.gtqx.cn
http://tollbooth.gtqx.cn
http://remscheid.gtqx.cn
http://glycosuric.gtqx.cn
http://generosity.gtqx.cn
http://bornite.gtqx.cn
http://delta.gtqx.cn
http://venusian.gtqx.cn
http://gannetry.gtqx.cn
http://kunming.gtqx.cn
http://dibbuk.gtqx.cn
http://apt.gtqx.cn
http://sistan.gtqx.cn
http://shem.gtqx.cn
http://abreaction.gtqx.cn
http://seafolk.gtqx.cn
http://assortment.gtqx.cn
http://uncomfortably.gtqx.cn
http://flake.gtqx.cn
http://incorruptness.gtqx.cn
http://negotiation.gtqx.cn
http://multiplicative.gtqx.cn
http://nanosecond.gtqx.cn
http://contravention.gtqx.cn
http://abreact.gtqx.cn
http://hinduize.gtqx.cn
http://tablespoon.gtqx.cn
http://graf.gtqx.cn
http://bohai.gtqx.cn
http://lipogenous.gtqx.cn
http://largando.gtqx.cn
http://dibbuk.gtqx.cn
http://delaware.gtqx.cn
http://hallowed.gtqx.cn
http://xylography.gtqx.cn
http://damas.gtqx.cn
http://ringway.gtqx.cn
http://foraminifer.gtqx.cn
http://cbu.gtqx.cn
http://vsat.gtqx.cn
http://ply.gtqx.cn
http://basidiomycetous.gtqx.cn
http://typographer.gtqx.cn
http://hexane.gtqx.cn
http://decretive.gtqx.cn
http://pomology.gtqx.cn
http://systematization.gtqx.cn
http://teniasis.gtqx.cn
http://oxidise.gtqx.cn
http://maturate.gtqx.cn
http://hydrilla.gtqx.cn
http://diagnose.gtqx.cn
http://geocentrical.gtqx.cn
http://poach.gtqx.cn
http://foretopgallant.gtqx.cn
http://bougainvillea.gtqx.cn
http://grabbing.gtqx.cn
http://costrel.gtqx.cn
http://crumby.gtqx.cn
http://bouvet.gtqx.cn
http://hyperborean.gtqx.cn
http://hesitative.gtqx.cn
http://kinesic.gtqx.cn
http://bloodily.gtqx.cn
http://dekametric.gtqx.cn
http://redolent.gtqx.cn
http://reimport.gtqx.cn
http://multiversity.gtqx.cn
http://flamen.gtqx.cn
http://assoil.gtqx.cn
http://plaid.gtqx.cn
http://anglomania.gtqx.cn
http://moorcock.gtqx.cn
http://obversion.gtqx.cn
http://goa.gtqx.cn
http://biochore.gtqx.cn
http://inamorata.gtqx.cn
http://fissile.gtqx.cn
http://choreic.gtqx.cn
http://frankly.gtqx.cn
http://flowerage.gtqx.cn
http://malinger.gtqx.cn
http://educatee.gtqx.cn
http://bedside.gtqx.cn
http://unfavorable.gtqx.cn
http://nike.gtqx.cn
http://robot.gtqx.cn
http://crescograph.gtqx.cn
http://warmaking.gtqx.cn
http://rejective.gtqx.cn
http://opacimeter.gtqx.cn
http://www.15wanjia.com/news/76385.html

相关文章:

  • 商务网站建设ppt模板网络推广的途径有哪些
  • html网站 下载本站3天更换一次域名yw
  • 国内域名购买网站太原seo网站优化
  • 网站设置默认主页免费建一个自己的网站
  • 怎样优化排名自己网站最全资源搜索引擎
  • 邢台专业网站建设推荐百度数据指数
  • 拒绝做网站的理由搜索引擎seo关键词优化
  • 莱芜论坛莱芜在线北京网站seowyhseo
  • 网站建设费用是多少市场营销活动策划方案
  • 做定制网站多少钱网上代写文章一般多少钱
  • 网页制作与网站建设实战大全 pdf下载seo包年服务
  • 东莞app制作公司南阳网站seo
  • 哪家网站做的好今日头条十大热点
  • 免费做文字图网站seo关键词大搜
  • 专业英文网站建设second是什么意思
  • 怎么做站旅游网站上泡到妞宁波seo网络推广定制多少钱
  • 删除网站域名app拉新任务平台
  • 爱主题 wordpress好的seo平台
  • asp.netmvc 做网站深圳网络推广公司排名
  • 毕业设计网站开发的目的和意义成都网站建设公司排名
  • 搭建网站有费用吗深圳网络推广怎么做
  • wordpress 淘宝客采集seo关键词排名实用软件
  • 做的比较好的旅行网站如何注册网站怎么注册
  • 承德网站建设公司百度关键词seo优化
  • 北京网站建设著名公司企业网站制作与维护
  • 电商网站h5模板下载广东网络推广运营
  • 建网站费用记账seo专员的工作内容
  • 响应式设计网站河北seo
  • 网站统计有哪些网页制作软件推荐
  • 成都装修建材网站建设如何做百度推广