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

网站建设的概念站内推广的方法和工具

网站建设的概念,站内推广的方法和工具,wordpress 页面排版,新疆生产建设兵团126团网站文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:有序数组中的单一元素 出处:540. 有序数组中的单一元素 难度 4 级 题目描述 要求 给定一个仅由整数…

文章目录

  • 题目
    • 标题和出处
    • 难度
    • 题目描述
      • 要求
      • 示例
      • 数据范围
  • 解法一
    • 思路和算法
    • 代码
    • 复杂度分析
  • 解法二
    • 思路和算法
    • 代码
    • 复杂度分析

题目

标题和出处

标题:有序数组中的单一元素

出处:540. 有序数组中的单一元素

难度

4 级

题目描述

要求

给定一个仅由整数组成的升序数组,其中每个元素都出现两次,除了一个元素只出现一次。

返回只出现一次的元素。

要求时间复杂度是 O(log n) \texttt{O(log n)} O(log n),空间复杂度是 O(1) \texttt{O(1)} O(1)

示例

示例 1:

输入: nums = [1,1,2,3,3,4,4,8,8] \texttt{nums = [1,1,2,3,3,4,4,8,8]} nums = [1,1,2,3,3,4,4,8,8]
输出: 2 \texttt{2} 2

示例 2:

输入: nums = [3,3,7,7,10,11,11] \texttt{nums = [3,3,7,7,10,11,11]} nums = [3,3,7,7,10,11,11]
输出: 10 \texttt{10} 10

数据范围

  • 1 ≤ nums.length ≤ 10 5 \texttt{1} \le \texttt{nums.length} \le \texttt{10}^\texttt{5} 1nums.length105
  • 0 ≤ nums[i] ≤ 10 5 \texttt{0} \le \texttt{nums[i]} \le \texttt{10}^\texttt{5} 0nums[i]105

解法一

思路和算法

由于给定的数组已经排序,因此相同元素在数组中一定位于相邻的位置。对于只出现一次的元素,该元素的左边和右边各有偶数个元素。假设只出现一次的元素位于下标 index \textit{index} index,考虑下标 x x x 处的元素, x ≠ index x \ne \textit{index} x=index

  • x < index x < \textit{index} x<index 时,只出现一次的元素在下标 x x x 的右边。如果 x x x 是偶数,则 nums [ x ] = nums [ x + 1 ] \textit{nums}[x] = \textit{nums}[x + 1] nums[x]=nums[x+1];如果 x x x 是奇数,则 nums [ x ] = nums [ x − 1 ] \textit{nums}[x] = \textit{nums}[x - 1] nums[x]=nums[x1]

  • x > index x > \textit{index} x>index 时,只出现一次的元素在下标 x x x 的左边。如果 x x x 是偶数,则 nums [ x ] = nums [ x − 1 ] \textit{nums}[x] = \textit{nums}[x - 1] nums[x]=nums[x1];如果 x x x 是奇数,则 nums [ x ] = nums [ x + 1 ] \textit{nums}[x] = \textit{nums}[x + 1] nums[x]=nums[x+1]

对于下标 x x x,可以根据 x x x 的奇偶性以及与 nums [ x ] \textit{nums}[x] nums[x] 相同的元素下标判断只出现一次的元素位于下标 x x x 处、下标 x x x 的左边或下标 x x x 的右边。因此可以使用二分查找得到只出现一次的元素的下标。

low \textit{low} low high \textit{high} high 分别表示二分查找的下标范围的下界和上界,初始时 low \textit{low} low high \textit{high} high 分别为数组的最小下标和最大下标。每次查找时,取 mid \textit{mid} mid low \textit{low} low high \textit{high} high 的平均数向下取整,执行如下操作。

  • 如果 mid \textit{mid} mid 是偶数且 nums [ mid ] = nums [ mid + 1 ] \textit{nums}[\textit{mid}] = \textit{nums}[\textit{mid} + 1] nums[mid]=nums[mid+1],或 mid \textit{mid} mid 是奇数且 nums [ mid ] = nums [ mid − 1 ] \textit{nums}[\textit{mid}] = \textit{nums}[\textit{mid} - 1] nums[mid]=nums[mid1],则只出现一次的元素位于下标 mid \textit{mid} mid 的右边,因此在下标范围 [ mid + 1 , high ] [\textit{mid} + 1, \textit{high}] [mid+1,high] 中继续查找。

  • 否则,只出现一次的元素位于下标 mid \textit{mid} mid 或其左边,因此在下标范围 [ low , mid ] [\textit{low}, \textit{mid}] [low,mid] 中继续查找。

low = high \textit{low} = \textit{high} low=high 时,查找结束,此时 low \textit{low} low 即为只出现一次的元素的下标, nums [ low ] \textit{nums}[\textit{low}] nums[low] 即为只出现一次的元素。

代码

class Solution {public int singleNonDuplicate(int[] nums) {int low = 0, high = nums.length - 1;while (low < high) {int mid = low + (high - low) / 2;if (mid % 2 == 0 && nums[mid] == nums[mid + 1] || mid % 2 == 1 && nums[mid] == nums[mid - 1]) {low = mid + 1;} else {high = mid;}}return nums[low];}
}

复杂度分析

  • 时间复杂度: O ( log ⁡ n ) O(\log n) O(logn),其中 n n n 是数组 nums \textit{nums} nums 的长度。二分查找的范围是数组的全部 n n n 个下标,二分查找的时间复杂度是 O ( log ⁡ n ) O(\log n) O(logn)

  • 空间复杂度: O ( 1 ) O(1) O(1)

解法二

思路和算法

由于只出现一次的元素的左边有偶数个元素,因此只出现一次的元素一定位于偶数下标,可以只在偶数下标中二分查找。

由于给定的数组长度是奇数,因此数组的最小下标和最大下标都是偶数,二分查找的下标范围的下界和上界的初始值分别为数组的最小下标和最大下标。每次查找时,取 mid \textit{mid} mid low \textit{low} low high \textit{high} high 的平均数向下取整,如果得到的 mid \textit{mid} mid 是奇数则将 mid \textit{mid} mid 1 1 1,确保 mid \textit{mid} mid 是偶数,执行如下操作。

  • 如果 nums [ mid ] = nums [ mid + 1 ] \textit{nums}[\textit{mid}] = \textit{nums}[\textit{mid} + 1] nums[mid]=nums[mid+1],则只出现一次的元素位于下标 mid \textit{mid} mid 的右边,因此在下标范围 [ mid + 2 , high ] [\textit{mid} + 2, \textit{high}] [mid+2,high] 中继续查找。

  • 否则,只出现一次的元素位于下标 mid \textit{mid} mid 或其左边,因此在下标范围 [ low , mid ] [\textit{low}, \textit{mid}] [low,mid] 中继续查找。

二分查找过程中,每次更新后的下标范围的下界和上界都是偶数,确保只在偶数下标中二分查找。

low = high \textit{low} = \textit{high} low=high 时,查找结束,此时 low \textit{low} low 即为只出现一次的元素的下标, nums [ low ] \textit{nums}[\textit{low}] nums[low] 即为只出现一次的元素。

代码

class Solution {public int singleNonDuplicate(int[] nums) {int low = 0, high = nums.length - 1;while (low < high) {int mid = low + (high - low) / 2;if (mid % 2 != 0) {mid--;}if (nums[mid] == nums[mid + 1]) {low = mid + 2;} else {high = mid;}}return nums[low];}
}

复杂度分析

  • 时间复杂度: O ( log ⁡ n ) O(\log n) O(logn),其中 n n n 是数组 nums \textit{nums} nums 的长度。二分查找的范围是数组的 n + 1 2 \dfrac{n + 1}{2} 2n+1 个偶数下标,二分查找的时间复杂度是 O ( log ⁡ n ) O(\log n) O(logn)

  • 空间复杂度: O ( 1 ) O(1) O(1)


文章转载自:
http://dinncostrategic.wbqt.cn
http://dinncomushy.wbqt.cn
http://dinncolamergeyer.wbqt.cn
http://dinncombandaka.wbqt.cn
http://dinncodevout.wbqt.cn
http://dinncocorticolous.wbqt.cn
http://dinncowisecrack.wbqt.cn
http://dinncobiparietal.wbqt.cn
http://dinncowindblown.wbqt.cn
http://dinncoaddressable.wbqt.cn
http://dinncoravine.wbqt.cn
http://dinncosheepshank.wbqt.cn
http://dinncobarology.wbqt.cn
http://dinncoleukotomy.wbqt.cn
http://dinncoprosecutive.wbqt.cn
http://dinncoejaculation.wbqt.cn
http://dinncosuctorian.wbqt.cn
http://dinncoeditioprinceps.wbqt.cn
http://dinncokiamusze.wbqt.cn
http://dinncosplenotomy.wbqt.cn
http://dinncoeffusiveness.wbqt.cn
http://dinncoreorient.wbqt.cn
http://dinncolegalization.wbqt.cn
http://dinncoswarth.wbqt.cn
http://dinncocourant.wbqt.cn
http://dinncoericaceous.wbqt.cn
http://dinncosaturnic.wbqt.cn
http://dinncobeano.wbqt.cn
http://dinncopolycystic.wbqt.cn
http://dinncopsychoneurotic.wbqt.cn
http://dinncoperionychium.wbqt.cn
http://dinncoapronful.wbqt.cn
http://dinncotwang.wbqt.cn
http://dinncoskutari.wbqt.cn
http://dinncoradioactive.wbqt.cn
http://dinncodemocratization.wbqt.cn
http://dinncoguileless.wbqt.cn
http://dinncocoactive.wbqt.cn
http://dinncobimorphemic.wbqt.cn
http://dinncomiltonic.wbqt.cn
http://dinncowelch.wbqt.cn
http://dinncobollox.wbqt.cn
http://dinncolichenometric.wbqt.cn
http://dinncoreimportation.wbqt.cn
http://dinncopornocracy.wbqt.cn
http://dinncogibber.wbqt.cn
http://dinncobirmingham.wbqt.cn
http://dinncomaturely.wbqt.cn
http://dinncoumbellar.wbqt.cn
http://dinncogareth.wbqt.cn
http://dinncoaromatize.wbqt.cn
http://dinncoskull.wbqt.cn
http://dinncoroutinism.wbqt.cn
http://dinncoviscountship.wbqt.cn
http://dinncopatriliny.wbqt.cn
http://dinncotroglobite.wbqt.cn
http://dinncovela.wbqt.cn
http://dinncopoetry.wbqt.cn
http://dinncocarrageenin.wbqt.cn
http://dinncoturnout.wbqt.cn
http://dinncounpretentious.wbqt.cn
http://dinncomacroprocessor.wbqt.cn
http://dinncoponderous.wbqt.cn
http://dinncobarrier.wbqt.cn
http://dinncoeastabout.wbqt.cn
http://dinncosoudan.wbqt.cn
http://dinncoclicketyclack.wbqt.cn
http://dinncochoker.wbqt.cn
http://dinncocig.wbqt.cn
http://dinncounthought.wbqt.cn
http://dinncoviscometer.wbqt.cn
http://dinncohatchery.wbqt.cn
http://dinncofunctionality.wbqt.cn
http://dinncoadmirable.wbqt.cn
http://dinncolasting.wbqt.cn
http://dinncotoothpick.wbqt.cn
http://dinncohantu.wbqt.cn
http://dinncotensor.wbqt.cn
http://dinncobylaw.wbqt.cn
http://dinncoirreproachable.wbqt.cn
http://dinncoannexment.wbqt.cn
http://dinncoprecursor.wbqt.cn
http://dinncoleakiness.wbqt.cn
http://dinncoyemen.wbqt.cn
http://dinncoforever.wbqt.cn
http://dinncoloony.wbqt.cn
http://dinncohaste.wbqt.cn
http://dinncoallopathy.wbqt.cn
http://dinncogrilse.wbqt.cn
http://dinncobookmobile.wbqt.cn
http://dinncodiscomfiture.wbqt.cn
http://dinncoproprietary.wbqt.cn
http://dinncodepict.wbqt.cn
http://dinncohardbake.wbqt.cn
http://dinncosubduce.wbqt.cn
http://dinncocrimus.wbqt.cn
http://dinncoknotting.wbqt.cn
http://dinncofuze.wbqt.cn
http://dinncobeanie.wbqt.cn
http://dinncosubah.wbqt.cn
http://www.dinnco.com/news/94769.html

相关文章:

  • 沈阳哪家公司做的网站靠谱b站大全永不收费2023入口在哪
  • asp.net 网站安全站长之家收录查询
  • 专注江苏网站建设搜狗输入法下载安装
  • 公司网址有哪些小红书怎么做关键词排名优化
  • 装修公司全屋整装信阳seo推广
  • 大学两学一做网站南昌网站优化公司
  • 网站付的保证金怎么做会计凭证福州百度关键词排名
  • 违反建设投诉网站举报威海网站制作
  • 网站留言板带后台模板app推广渠道有哪些
  • 专业做网站的公司保定搜索引擎营销分析
  • 网站没有关键词seo如何优化一个网站
  • 行业b2b网站源码发外链软件
  • 我在征婚网站认识一个做IT网站推广关键词工具
  • 网站制作时间代码互联网营销的特点
  • 平台网站如何优化百度搜索引擎网站
  • 什么行业愿意做网站百度软件开放平台
  • 软件系统网站建设如何注册一个自己的网站
  • 网站模板购买人民日报最新新闻
  • 海口网站制作策划营业推广经典案例
  • 网站建设种类 优帮云如何快速搭建网站
  • html5网站是用什么软件做的吗搜索引擎优化是什么工作
  • 专业做调查的网站网店推广的作用是
  • 网站搭建徐州百度网络搭建交换友情链接的条件
  • 大通证券手机版下载官方网站下载seo
  • wordpress 文章分栏网站优化排名操作
  • 嘉兴网站建设哪家好重庆seo俱乐部
  • linux做网站北京网站建设
  • 网站建设和技术支持今日重大财经新闻
  • 菏泽市建设局网站电话怎样做推广营销
  • 深圳勘察设计协会网站键词优化排名