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

网站开发速成培训机构东莞松山湖

网站开发速成培训机构,东莞松山湖,php自适应网站开发,WordPress播放h265目录 题目链接#xff1a;238. 除自身以外数组的乘积 - 力扣#xff08;LeetCode#xff09; 题目描述 示例 提示#xff1a; 解法一#xff1a;左右数组#xff08;小型动态规划#xff09; 实现思路 Java写法#xff1a; 运行时间 C写法#xff1a; 运行时… 目录 题目链接238. 除自身以外数组的乘积 - 力扣LeetCode 题目描述 示例 提示 解法一左右数组小型动态规划 实现思路 Java写法 运行时间 C写法 运行时间 时间复杂度以及空间复杂度 总结 题目链接238. 除自身以外数组的乘积 - 力扣LeetCode 注下述题目描述和示例均来自力扣 题目描述 给你一个整数数组 nums返回 数组 answer 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。 请 不要使用除法且在 O(n) 时间复杂度内完成此题。 示例 示例 1: 输入: nums [1,2,3,4] 输出: [24,12,8,6]示例 2: 输入: nums [-1,1,0,-3,3] 输出: [0,0,9,0,0]提示 2 nums.length 105-30 nums[i] 30保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内 进阶你可以在 O(1) 的额外空间复杂度内完成这个题目吗 出于对空间复杂度分析的目的输出数组 不被视为 额外空间。 解法一左右数组小型动态规划 这个问题可以通过两次遍历数组来解决而不需要使用额外的空间除了用于结果的数组之外但这段代码巧妙地使用了两个辅助数组 left 和 right 来分别存储每个元素左侧所有元素的乘积和右侧所有元素的乘积从而避免了在单次遍历中同时计算左右两侧乘积的复杂性。 实现思路 初始化 首先创建一个与输入数组 nums 长度相同的数组 left用于存储每个元素左侧所有元素的乘积包括元素本身位置为1的情况因为元素本身不参与计算。同时创建一个与 nums 长度相同的数组 right用于存储每个元素右侧所有元素的乘积同样元素本身位置为1。计算左侧乘积 遍历 nums 数组从左到右。对于 left 数组的每个位置 i其值等于 nums[i-1]如果 i 0与 left[i-1] 的乘积。如果 i 0则 left[0] 1因为没有元素在 nums[0] 的左侧。计算右侧乘积 遍历 nums 数组但这次是从右到左。对于 right 数组的每个位置 i其值等于 nums[i1]如果 i len-1与 right[i1] 的乘积。如果 i len-1则 right[len-1] 1因为没有元素在 nums[len-1] 的右侧。计算最终结果 再次遍历 nums 数组这次是为了计算每个元素的最终结果。对于 nums 数组的每个位置 i其最终值等于 left[i]左侧所有元素的乘积与 right[i]右侧所有元素的乘积的乘积。返回结果 将修改后的 nums 数组返回此时 nums 数组的每个元素都已经是除了它自身以外所有元素的乘积了。 Java写法 class Solution {public int[] productExceptSelf(int[] nums) {int len nums.length;if(len 0){return nums;}// 定义出两个数组分别表示左边的乘积和右边数组的乘积// 这个思路有点和动态规划相似// 0 1 2 3// 1, 2, 3,4// left 1, 1, 2,6// right 24,12,4,1int[] left new int[len];int[] right new int[len];// 填入左边乘积数组的值// 初始化left[0] 1;for(int i 1; i len ; i){left[i] nums[i - 1] * left[i - 1];}// 填入右边乘积数组的值right[len - 1] 1;for(int i len - 2; i 0 ; i--){right[i] nums[i 1] * right[i 1];}for(int i 0; i len; i){nums[i] left[i] * right[i];}return nums;} } 运行时间 C写法 class Solution { public:vectorint productExceptSelf(vectorint nums) {int len nums.size();vectorint left(len);vectorint right(len);left[0] 1;for(int i 1; i len; i){left[i] nums[i - 1] * left[i - 1];}right[len - 1] 1;for(int i len - 2; i 0; i--){right[i] nums[i 1] * right[i 1];}for(int i 0; i len; i){nums[i] left[i] * right[i];}return nums;} }; 运行时间 时间复杂度以及空间复杂度 总结 累了哥几个最近有点焦虑了不总结了哎
http://www.dnsts.com.cn/news/140352.html

相关文章:

  • 默认网站预览能能显示建设中群晖搭建wordpress
  • 沈阳网站推广的公司word贴到wordpress
  • wordpress 企业建站o2o平台系统开发
  • 网站建设公式ps做网页
  • 外贸网站建设视频创意文字设计
  • 设计网站需要多少钱网站你懂我意思正能量app
  • 网站导航栏固定中山哪里网站建设
  • 做网站的抬头标语怎么个人网站作品
  • 网站图片多大做网站参考线怎么拉
  • 卫生局网站建设做产品目录设计用什么网站好
  • 泉州网站建设的步骤静态网页怎么放到网上
  • 网站备案有效期wordpress 快讯
  • 眼镜网站源码做网站开发的电话销售话术
  • 网络营销是什么来实现营销目标的一种市场营销方式宁波网站seo哪家好
  • seo站长平台淘宝客可以做返利网站吗
  • 用php做购物网站做教育网站的公司
  • 浏览器如何做购物网站写作网站好吗
  • 网站建设需要申请服务器吗网络营销名词解释电子商务
  • 做设计常逛的网站北京东道设计
  • 电商网站目录优化乐从网站开发
  • 济南软件优化网站公司网站优化软件
  • 红桥网站建设公司wordpress 生成 客户端
  • 织梦印刷公司网站源码霸州做阿里巴巴网站
  • 网站风格主要包括哪些健康养生网站模板
  • 电子商务网站平台建设目标wordpress文本目录
  • 河北营销类网站设计庆阳设计公司
  • 网站seo优化查询高柏企业管理咨询有限公司
  • 网站模板制作教程视频教程网站备案号填写
  • 网站开发时的闭包写法你做我评网站会自动查论文相似度吗
  • 青海城乡住房和建设厅网站佛山seo扣费