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

如何做新政府网站栏目百度seo排名公司

如何做新政府网站栏目,百度seo排名公司,流媒体网站建设规划,网站 www ftp功能文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:有序数组的平方 出处:977. 有序数组的平方 难度 2 级 题目描述 要求 给定按非递减顺序排序的整…

文章目录

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

题目

标题和出处

标题:有序数组的平方

出处:977. 有序数组的平方

难度

2 级

题目描述

要求

给定按非递减顺序排序的整数数组 nums \texttt{nums} nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

示例

示例 1:

输入: nums = [-4,-1,0,3,10] \texttt{nums = [-4,-1,0,3,10]} nums = [-4,-1,0,3,10]
输出: [0,1,9,16,100] \texttt{[0,1,9,16,100]} [0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100] \texttt{[16,1,0,9,100]} [16,1,0,9,100]。排序后,数组变为 [0,1,9,16,100] \texttt{[0,1,9,16,100]} [0,1,9,16,100]

示例 2:

输入: nums = [-7,-3,2,3,11] \texttt{nums = [-7,-3,2,3,11]} nums = [-7,-3,2,3,11]
输出: [4,9,9,49,121] \texttt{[4,9,9,49,121]} [4,9,9,49,121]

数据范围

  • 1 ≤ nums.length ≤ 10 4 \texttt{1} \le \texttt{nums.length} \le \texttt{10}^\texttt{4} 1nums.length104
  • -10 4 ≤ nums[i] ≤ 10 4 \texttt{-10}^\texttt{4} \le \texttt{nums[i]} \le \texttt{10}^\texttt{4} -104nums[i]104
  • nums \texttt{nums} nums 已按非递减顺序排序

进阶

计算每个元素的平方并对新数组排序的解法很简单,你可以使用不同的方法找到时间复杂度 O(n) \texttt{O(n)} O(n) 的解法吗?

解法一

思路和算法

最直观的解法是依次计算数组 nums \textit{nums} nums 中的每个元素的平方并存入新数组中,然后对新数组按非递减顺序排序,即可得到排序后的新数组。

代码

class Solution {public int[] sortedSquares(int[] nums) {int length = nums.length;int[] squares = new int[length];for (int i = 0; i < length; i++) {squares[i] = nums[i] * nums[i];}Arrays.sort(squares);return squares;}
}

复杂度分析

  • 时间复杂度: O ( n log ⁡ n ) O(n \log n) O(nlogn),其中 n n n 是数组 nums \textit{nums} nums 的长度。计算数组 nums \textit{nums} nums 中的每个元素的平方并存入新数组需要 O ( n ) O(n) O(n) 的时间,对新数组排序需要 O ( n log ⁡ n ) O(n \log n) O(nlogn) 的时间,因此时间复杂度是 O ( n log ⁡ n ) O(n \log n) O(nlogn)

  • 空间复杂度: O ( log ⁡ n ) O(\log n) O(logn),其中 n n n 是数组 nums \textit{nums} nums 的长度。对新数组排序需要 O ( log ⁡ n ) O(\log n) O(logn) 的递归调用栈空间。注意返回值不计入空间复杂度。

解法二

思路和算法

解法一没有利用到数组 nums \textit{nums} nums 已经按非递减顺序排序的条件,因此需要对新数组排序,时间复杂度是 O ( n log ⁡ n ) O(n \log n) O(nlogn)。如果利用数组 nums \textit{nums} nums 已经按非递减顺序排序的条件,则不需要对新数组排序,将时间复杂度降低到 O ( n ) O(n) O(n)

由于一个数的平方大小与这个数的绝对值有关,因此考虑数组 nums \textit{nums} nums 中的绝对值最大元素与绝对值最小元素可能出现的位置。

数组 nums \textit{nums} nums 按非递减顺序排序,可能有以下三种情况:

  • 数组 nums \textit{nums} nums 的所有元素都是非负数,元素顺序为绝对值非递减顺序,首个元素的绝对值最小,末尾元素的绝对值最大;

  • 数组 nums \textit{nums} nums 的所有元素都是非正数,元素顺序为绝对值非递增顺序,首个元素的绝对值最大,末尾元素的绝对值最小;

  • 数组 nums \textit{nums} nums 中既有正数也有负数,首个元素或末尾元素的绝对值最大。

对于上述三种情况中的任意一种情况,绝对值最大的元素一定是数组 nums \textit{nums} nums 的首个元素或末尾元素。因此可以从数组 nums \textit{nums} nums 的两端向中间遍历,按照绝对值从大到小的顺序依次遍历数组 nums \textit{nums} nums 的元素,计算每个元素的平方,反向填入新数组。

具体做法是,维护两个下标 index 1 \textit{index}_1 index1 index 2 \textit{index}_2 index2,初始时 index 1 \textit{index}_1 index1 指向数组 nums \textit{nums} nums 的首个元素, index 2 \textit{index}_2 index2 指向数组 nums \textit{nums} nums 的末尾元素。遍历过程中,比较 nums [ index 1 ] \textit{nums}[\textit{index}_1] nums[index1] nums [ index 2 ] \textit{nums}[\textit{index}_2] nums[index2] 这两个元素的绝对值:

  • 如果 nums [ index 1 ] \textit{nums}[\textit{index}_1] nums[index1] 的绝对值大于 nums [ index 2 ] \textit{nums}[\textit{index}_2] nums[index2] 的绝对值,则将 nums [ index 1 ] \textit{nums}[\textit{index}_1] nums[index1] 的平方填入新数组,将 index 1 \textit{index}_1 index1 1 1 1

  • 如果 nums [ index 1 ] \textit{nums}[\textit{index}_1] nums[index1] 的绝对值小于等于 nums [ index 2 ] \textit{nums}[\textit{index}_2] nums[index2] 的绝对值,则将 nums [ index 2 ] \textit{nums}[\textit{index}_2] nums[index2] 的平方填入新数组,将 index 2 \textit{index}_2 index2 1 1 1

由于遍历数组 nums \textit{nums} nums 的过程中,每次遍历的元素都是尚未遍历的元素中的绝对值最大的元素,因此遍历元素的顺序是绝对值非递增顺序,即元素的平方非递增顺序。将遍历的元素的平方反向填入新数组,新数组中的元素顺序为非递减顺序。

代码

class Solution {public int[] sortedSquares(int[] nums) {int length = nums.length;int[] squares = new int[length];int index1 = 0, index2 = length - 1;for (int i = length - 1; i >= 0; i--) {if (Math.abs(nums[index1]) > Math.abs(nums[index2])) {squares[i] = nums[index1] * nums[index1];index1++;} else {squares[i] = nums[index2] * nums[index2];index2--;}}return squares;}
}

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n 是数组 nums \textit{nums} nums 的长度。需要遍历数组 nums \textit{nums} nums 中的每个元素一次。

  • 空间复杂度: O ( 1 ) O(1) O(1)。注意返回值不计入空间复杂度。


文章转载自:
http://expiation.rsnd.cn
http://tenesmus.rsnd.cn
http://synthetic.rsnd.cn
http://antimutagenic.rsnd.cn
http://spy.rsnd.cn
http://physiognomical.rsnd.cn
http://unmown.rsnd.cn
http://billposting.rsnd.cn
http://susie.rsnd.cn
http://tubefast.rsnd.cn
http://calque.rsnd.cn
http://phosphene.rsnd.cn
http://colltype.rsnd.cn
http://gaberones.rsnd.cn
http://infernally.rsnd.cn
http://winnock.rsnd.cn
http://beta.rsnd.cn
http://intense.rsnd.cn
http://jalap.rsnd.cn
http://quincunx.rsnd.cn
http://sternward.rsnd.cn
http://unbed.rsnd.cn
http://planer.rsnd.cn
http://grandnephew.rsnd.cn
http://wafery.rsnd.cn
http://agaragar.rsnd.cn
http://scratchy.rsnd.cn
http://imbower.rsnd.cn
http://chappow.rsnd.cn
http://papilla.rsnd.cn
http://vicissitude.rsnd.cn
http://confound.rsnd.cn
http://egger.rsnd.cn
http://tpilisi.rsnd.cn
http://honeybee.rsnd.cn
http://utter.rsnd.cn
http://reindict.rsnd.cn
http://unintelligible.rsnd.cn
http://climbout.rsnd.cn
http://incandescent.rsnd.cn
http://cleome.rsnd.cn
http://heartstring.rsnd.cn
http://calipers.rsnd.cn
http://intermediator.rsnd.cn
http://toney.rsnd.cn
http://subterconscious.rsnd.cn
http://woundy.rsnd.cn
http://nonobjectivity.rsnd.cn
http://mediatrice.rsnd.cn
http://hydroextractor.rsnd.cn
http://squattocracy.rsnd.cn
http://abradant.rsnd.cn
http://firkin.rsnd.cn
http://seriation.rsnd.cn
http://aerostatical.rsnd.cn
http://arable.rsnd.cn
http://fireballer.rsnd.cn
http://citable.rsnd.cn
http://elutriate.rsnd.cn
http://mondial.rsnd.cn
http://vituperator.rsnd.cn
http://psychoprophylaxis.rsnd.cn
http://devoid.rsnd.cn
http://discontinuity.rsnd.cn
http://revolutionize.rsnd.cn
http://subprior.rsnd.cn
http://maunder.rsnd.cn
http://neutrosphere.rsnd.cn
http://undreaded.rsnd.cn
http://sprent.rsnd.cn
http://perambulatory.rsnd.cn
http://butterwort.rsnd.cn
http://contortions.rsnd.cn
http://godspeed.rsnd.cn
http://delusterant.rsnd.cn
http://testacy.rsnd.cn
http://phylloclad.rsnd.cn
http://emotion.rsnd.cn
http://astrosphere.rsnd.cn
http://papalist.rsnd.cn
http://malefic.rsnd.cn
http://poikilothermous.rsnd.cn
http://conferrale.rsnd.cn
http://paramorphism.rsnd.cn
http://octothorp.rsnd.cn
http://bewilderment.rsnd.cn
http://comsymp.rsnd.cn
http://colloid.rsnd.cn
http://paternalistic.rsnd.cn
http://workpoint.rsnd.cn
http://tedium.rsnd.cn
http://bungalow.rsnd.cn
http://thatch.rsnd.cn
http://duenna.rsnd.cn
http://trashsport.rsnd.cn
http://flippantly.rsnd.cn
http://telecon.rsnd.cn
http://sinsyne.rsnd.cn
http://frisian.rsnd.cn
http://polonium.rsnd.cn
http://www.15wanjia.com/news/77919.html

相关文章:

  • 合肥网站推广哪家好带佣金的旅游推广平台有哪些
  • btob网站建设策略公司个人怎么做网络推广
  • web网站开发前后端贵阳百度推广电话
  • 江都网站建设网络营销的六大特征
  • 安徽省建设厅网站打不开软服业营收破334亿
  • 旅行社可以经营5项业务seo整站优化报价
  • 怎么用python做网站郑州seo优化阿亮
  • 网站怎么做移动图片大全有没有好用的网站推荐
  • 深圳网站设计(深圳信科)小程序平台
  • 专业品牌设计网站建设竞价恶意点击立案标准
  • 云南建设学校网站知名的搜索引擎优化
  • 国际军事新闻联播seo问答
  • 租房网站的财务分析表怎么做seo网站优化平台
  • 做app推广上哪些网站在线bt种子
  • 电商网站的模式奉化seo页面优化外包
  • 做的网站可以转给其他公司吗看片子用什么app免费苹果手机
  • 龙岩北京网站建设seo优化裤子关键词
  • 买了域名不备案行吗百度seo关键词排名查询
  • 凯里市企业建站公司浏览器网站大全
  • 中山做外贸网站收录优美的图片
  • 做暖暖无码网站查询友情链接
  • 网络营销策略分析方法百度快速收录seo工具软件
  • 廊坊公司网站建设产品线上营销有哪些方式
  • 网站建设公司怎么样百度seo网站优化 网络服务
  • jsp网站建设教程百度培训
  • 郑州网站建设 app开发windows优化大师好用吗
  • 广告公司手机网站模板钟南山今天感染新冠了
  • 百度推广必须做手机网站吗品牌策划公司
  • 有专门做ppt的网站吗北京seo主管
  • 黄石网站建设定做首码项目推广平台