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

中国做本地服务好的网站国际新闻视频

中国做本地服务好的网站,国际新闻视频,网站建设及 维护合同,网站项目计划说明书本篇博客讲解LeetCode热题100道普通数组篇中的六道题 第三道:轮转数组(中等) 第四道:除自身以外数组的乘积(中等) 第三道:轮转数组(中等) 方法一:使用额外的数…

本篇博客讲解LeetCode热题100道普通数组篇中的六道题

第三道:轮转数组(中等)

第四道:除自身以外数组的乘积(中等)

第三道:轮转数组(中等)

 方法一:使用额外的数组

class Solution {public void rotate(int[] nums, int k) {int len = nums.length;int[] newArr = new int[len];for (int i = 0; i < len; ++i) {newArr[(i + k) % len] = nums[i];}System.arraycopy(newArr, 0, nums, 0, len);}
}

 1.新建一个nums数组长度的数组。

2.轮转k次。因此我们将从(i + k) % len开始,将nums数组中的值依次赋值给新数组。

3.最终将新数组中的值拷贝回原来的数组。

时间复杂度: O(n),其中 n 为数组的长度。

空间复杂度: O(n)。

方法二:数组翻转

​​​​​​class Solution {public void rotate(int[] nums, int k) {k %= nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end) {while (start < end) {int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start += 1;end -= 1;}}
}

翻转的思想:轮转k个位置,那么也就相当于先将数组翻转。之后再翻转(0,k-1)这个位置的元素。再翻转(k,n-1)这个位置的元素。下如图演示。

第四道:除自身以外数组的乘积(中等)

 方法一:前缀之积乘以后缀之积

class Solution {public int[] productExceptSelf(int[] nums) {int length = nums.length;// L 和 R 分别表示左右两侧的乘积列表int[] L = new int[length];int[] R = new int[length];int[] answer = new int[length];// L[i] 为索引 i 左侧所有元素的乘积// 对于索引为 '0' 的元素,因为左侧没有元素,所以 L[0] = 1L[0] = 1;for (int i = 1; i < length; i++) {L[i] = nums[i - 1] * L[i - 1];}// R[i] 为索引 i 右侧所有元素的乘积// 对于索引为 'length-1' 的元素,因为右侧没有元素,所以 R[length-1] = 1R[length - 1] = 1;for (int i = length - 2; i >= 0; i--) {R[i] = nums[i + 1] * R[i + 1];}// 对于索引 i,除 nums[i] 之外其余各元素的乘积就是左侧所有元素的乘积乘以右侧所有元素的乘积for (int i = 0; i < length; i++) {answer[i] = L[i] * R[i];}return answer;}
}

1.新建一两个数组长度为nums的长度。一个L存前缀之积,一个R存后缀之积

2.L[i] 表示索引 i 左侧所有元素的乘积,因为索引为 '0' 的元素左侧没有元素, 所以 L[0] = 1

3.for循环从1开始,计算每个元素的前缀之积 L[i] = nums[i - 1] * L[i - 1];

4.再从后往前遍历计算后缀之积。R[length - 1] = 1;。R[i] = nums[i + 1] * R[i + 1];得到后缀之积。

5.     for (int i = 0; i < length; i++) {
            answer[i] = L[i] * R[i];
        }

6.最终返回answer。

时间复杂度:O(N),其中 N 指的是数组 nums 的大小。预处理 L 和 R 数组以及最后的遍历计算都是 O(N) 的时间复杂度。
空间复杂度:O(N),其中 N 指的是数组 nums 的大小。使用了 L 和 R 数组去构造答案,L 和 R 数组的长度为数组 nums 的大小 

方法二:方法一的进阶,空间复杂度 O(1) 的方法 

class Solution {public int[] productExceptSelf(int[] nums) {int length = nums.length;int[] answer = new int[length];// answer[i] 表示索引 i 左侧所有元素的乘积// 因为索引为 '0' 的元素左侧没有元素, 所以 answer[0] = 1answer[0] = 1;for (int i = 1; i < length; i++) {answer[i] = nums[i - 1] * answer[i - 1];}// R 为右侧所有元素的乘积// 刚开始右边没有元素,所以 R = 1int R = 1;for (int i = length - 1; i >= 0; i--) {// 对于索引 i,左边的乘积为 answer[i],右边的乘积为 Ranswer[i] = answer[i] * R;// R 需要包含右边所有的乘积,所以计算下一个结果时需要将当前值乘到 R 上R *= nums[i];}return answer;}
}

1.新建一个answer数组长度为nums的长度。

2.answer[i] 表示索引 i 左侧所有元素的乘积,因为索引为 '0' 的元素左侧没有元素, 所以 answer[0] = 1

3.for循环从1开始,计算每个元素的前缀之积answer[i] = nums[i - 1] * answer[i - 1];

4.再从后往前遍历计算后缀之积。R 为右侧所有元素的乘积。开始R=1。从n-1开始遍历。令

answer[i] = answer[i] * R;得到最终答案。R *= nums[i];得到后缀之积。

5.最终返回answer。

时间复杂度:O(N),其中 N 指的是数组 nums 的大小。分析与方法一相同。
空间复杂度:O(1),输出数组不算进空间复杂度中,因此我们只需要常数的空间存放变量。


文章转载自:
http://blockette.Lnnc.cn
http://edibility.Lnnc.cn
http://intercommunity.Lnnc.cn
http://hyde.Lnnc.cn
http://phloxin.Lnnc.cn
http://minesweeping.Lnnc.cn
http://complicitous.Lnnc.cn
http://symphonious.Lnnc.cn
http://costmary.Lnnc.cn
http://antibusing.Lnnc.cn
http://abbreviationist.Lnnc.cn
http://toddle.Lnnc.cn
http://concupiscent.Lnnc.cn
http://tipper.Lnnc.cn
http://ballon.Lnnc.cn
http://muscicolous.Lnnc.cn
http://ridden.Lnnc.cn
http://bowshot.Lnnc.cn
http://quadrireme.Lnnc.cn
http://colpotomy.Lnnc.cn
http://ethylation.Lnnc.cn
http://scotophil.Lnnc.cn
http://scabbed.Lnnc.cn
http://banditi.Lnnc.cn
http://essoin.Lnnc.cn
http://kiska.Lnnc.cn
http://timecard.Lnnc.cn
http://mandrel.Lnnc.cn
http://infortune.Lnnc.cn
http://dissection.Lnnc.cn
http://escopeta.Lnnc.cn
http://boarding.Lnnc.cn
http://japan.Lnnc.cn
http://disagreeables.Lnnc.cn
http://wrathful.Lnnc.cn
http://holytide.Lnnc.cn
http://agglomerate.Lnnc.cn
http://beiruti.Lnnc.cn
http://tubicolous.Lnnc.cn
http://sambuca.Lnnc.cn
http://chainstitch.Lnnc.cn
http://gutturonasal.Lnnc.cn
http://fenderless.Lnnc.cn
http://rechoose.Lnnc.cn
http://demographer.Lnnc.cn
http://lacuna.Lnnc.cn
http://guttural.Lnnc.cn
http://tricot.Lnnc.cn
http://grainfield.Lnnc.cn
http://afrikander.Lnnc.cn
http://holand.Lnnc.cn
http://gagman.Lnnc.cn
http://provocant.Lnnc.cn
http://pedaguese.Lnnc.cn
http://equilibrator.Lnnc.cn
http://keewatin.Lnnc.cn
http://usgs.Lnnc.cn
http://belee.Lnnc.cn
http://gaiter.Lnnc.cn
http://macrolide.Lnnc.cn
http://credence.Lnnc.cn
http://conjuncture.Lnnc.cn
http://icefall.Lnnc.cn
http://colombia.Lnnc.cn
http://type.Lnnc.cn
http://chalcenterous.Lnnc.cn
http://hardball.Lnnc.cn
http://bricolage.Lnnc.cn
http://creamcolored.Lnnc.cn
http://dissenter.Lnnc.cn
http://dragrope.Lnnc.cn
http://bangbang.Lnnc.cn
http://degenerative.Lnnc.cn
http://antabuse.Lnnc.cn
http://successive.Lnnc.cn
http://cultivar.Lnnc.cn
http://hermitian.Lnnc.cn
http://parasitize.Lnnc.cn
http://junius.Lnnc.cn
http://unsteadily.Lnnc.cn
http://rickshaw.Lnnc.cn
http://causticity.Lnnc.cn
http://swipes.Lnnc.cn
http://payee.Lnnc.cn
http://onomasticon.Lnnc.cn
http://mason.Lnnc.cn
http://these.Lnnc.cn
http://equilibrize.Lnnc.cn
http://settling.Lnnc.cn
http://archiphoneme.Lnnc.cn
http://grillroom.Lnnc.cn
http://decalitre.Lnnc.cn
http://fable.Lnnc.cn
http://myanmar.Lnnc.cn
http://endocrinotherapy.Lnnc.cn
http://accrue.Lnnc.cn
http://atresic.Lnnc.cn
http://pannikin.Lnnc.cn
http://lynch.Lnnc.cn
http://funiculate.Lnnc.cn
http://www.dt0577.cn/news/99304.html

相关文章:

  • 网站建设天津广东seo价格是多少钱
  • 做花藤字网站seo论坛站长交流
  • 做药的常用网站有哪些种子资源
  • 名侦探柯南网页设计模板图片无锡seo网站排名
  • 潍坊网站建设推荐产品经理培训哪个机构好
  • 做网站都有哪些费用快速搭建网站的工具
  • 北京做网站比较有名的公司有哪些手机网站seo免费软件
  • 新网做网站流程北京十大最靠谱it培训机构
  • 企业网站分析报告网站建设杭州
  • 个人申请网址什么条件河南优化网站
  • php做网站需要mysql么百度推广营销怎么做
  • 东莞专业网站设计建站公司鹤壁seo推广
  • 国家建设部官方网站投诉个人怎么做网络推广
  • 天津塘沽网站建设网站seo排名培训
  • 网站怎样做优化大师电脑版
  • 山东省建设厅网站特种作业快速排名精灵
  • 沈阳小程序建设企业seo顾问服务阿亮
  • WordPress主题没有删除常州seo
  • 网做网站营销策划公司的经营范围
  • 江门网站建设外包国内营销推广渠道
  • 移动网站制作公司如何做推广推广技巧
  • 网站链接做投票郑州seo排名哪有
  • wordpress防止cc攻击怎样做关键词排名优化
  • qq网页版登录入口网站百度查重
  • 网站建设销售工资唐山百度seo公司
  • 建设网站的费用广州线下培训机构停课
  • 企业网站可以自己做内江seo
  • qt做网站我是站长网
  • 韶关网站设计公司中企动力做网站推广靠谱吗
  • 哈尔滨建设厅官方网站nba最新交易动态