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

工信网备案网站不用源码做网站

工信网备案网站,不用源码做网站,开发网上商城公司,大学生网页设计期末作品代码文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题#xff1a;有序数组中的单一元素 出处#xff1a;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} 1≤nums.length≤105 0 ≤ nums[i] ≤ 10 5 \texttt{0} \le \texttt{nums[i]} \le \texttt{10}^\texttt{5} 0≤nums[i]≤105 解法一 思路和算法 由于给定的数组已经排序因此相同元素在数组中一定位于相邻的位置。对于只出现一次的元素该元素的左边和右边各有偶数个元素。假设只出现一次的元素位于下标 index \textit{index} index考虑下标 x x x 处的元素 x ≠ index x \ne \textit{index} xindex。 当 x index x \textit{index} xindex 时只出现一次的元素在下标 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 index x \textit{index} xindex 时只出现一次的元素在下标 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 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[mid1]或 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 1 , high ] [\textit{mid} 1, \textit{high}] [mid1,high] 中继续查找。 否则只出现一次的元素位于下标 mid \textit{mid} mid 或其左边因此在下标范围 [ low , mid ] [\textit{low}, \textit{mid}] [low,mid] 中继续查找。 当 low high \textit{low} \textit{high} lowhigh 时查找结束此时 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[mid1]则只出现一次的元素位于下标 mid \textit{mid} mid 的右边因此在下标范围 [ mid 2 , high ] [\textit{mid} 2, \textit{high}] [mid2,high] 中继续查找。 否则只出现一次的元素位于下标 mid \textit{mid} mid 或其左边因此在下标范围 [ low , mid ] [\textit{low}, \textit{mid}] [low,mid] 中继续查找。 二分查找过程中每次更新后的下标范围的下界和上界都是偶数确保只在偶数下标中二分查找。 当 low high \textit{low} \textit{high} lowhigh 时查找结束此时 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} 2n1​ 个偶数下标二分查找的时间复杂度是 O ( log ⁡ n ) O(\log n) O(logn)。 空间复杂度 O ( 1 ) O(1) O(1)。
http://www.hkea.cn/news/14559465/

相关文章:

  • 基础微网站开发动态龙采哈尔滨建站公司
  • 网站建设的页面要求vps网站能打开
  • 官方网站、门户网站是什么意思?youhosting wordpress
  • 移动应用开发公司网站模板百度贴吧怎么做推广
  • 免费的静态网站托管一二三四视频社区在线一中文
  • 网站内链怎么删除滨河网站建设
  • 南京免费发布信息网站wordpress小工具空格
  • 营销型设计网站网龙网络公司地址
  • 陕西住房和城乡建设部网站保定网站优化哪家好
  • 济南公司做网站goodnex drupal7企业wordpress模板
  • 衡水做网站技术建站软件排名
  • 如何用腾讯云主机做网站手机网站建设 小程序
  • 网站收录量深圳皇冠科技有限公司网站
  • 如何设置便于搜索引擎收录的网站结构自己模板做网站
  • 江西app网站建设网络营销方案规范
  • 天津市建设工程管理总队网站wordpress文章管理模板
  • 东莞企业网站建设预算大概多少永久的免费网站地址
  • 建设网站公司简介北京网页设计设计培训
  • 注册号域名后 怎么建设网站免费主页空间的网站
  • 3.0效果网站建设多少钱lnmp搭建后怎么做网站
  • 连云港做网站推广宁波 做网站
  • ssh做的网站股权分配系统建设网站
  • 华建设计网站如何在修改wordpress
  • 网站 空间 下载企业文化展厅设计方案
  • 建个人网站百度最新版本2022
  • 网站用哪些系统做的wordpress doc嵌入
  • 成都网站建设多少费用dedecms 网站重复文章
  • 网站推广的策略有哪些福建个人网站备案
  • 品牌商城网站制作公司网业升级
  • 公司网站建设要多少钱微信小程序开发商家