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

抚顺网站建设招聘网页设计期末作品素材

抚顺网站建设招聘,网页设计期末作品素材,如何使用网络营销策略,企业做网站需注意什么文章目录 🍷1. 题目🍸2. 算法原理🍥解法一:暴力求解🍥解法二:前缀和(积) 🍹3. 代码实现 🍷1. 题目 题目链接:238. 除自身以外数组的乘积 - 力扣&a…

在这里插入图片描述

文章目录

    • 🍷1. 题目
    • 🍸2. 算法原理
      • 🍥解法一:暴力求解
      • 🍥解法二:前缀和(积)
    • 🍹3. 代码实现

🍷1. 题目

题目链接: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) 的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组 不被视为 额外空间。)

🍸2. 算法原理

本题的意思是,要求出除了当前下标位置,其他位置的乘积

image-20231125122843183

🍥解法一:暴力求解

暴力求解就是遍历整个数组,然后再遍历一次除了当前位置的其他位置元素乘积,整个的时间复杂度为O(n2)

🍥解法二:前缀和(积)

这里求除了当前位置的整个数组的乘积,可以理解为求前面一部的前缀积+后面一部分的后缀积

image-20231125123557540

预处理:

  • f表示前缀积,f[i]表示[0,i-1]区间内所有元素的乘积f[i] = f[i-1] * nums[i-1]
  • g表示后缀积,g[i]表示[i+1,n-1]区间内所有元素的乘积g[i] = g[i+1] * nums[i+1]

这里因为f[i]的区间是[0,i-1],所以这里的i,实际上是i-1
在这里插入图片描述

使用预处理之后的数组:

有了预处理的数组,我们只需让f[i]*g[i]即可求出当前位置的值

细节问题:

这里因为要求的是乘积,所以f[0]这里要提前处理一下,f[0] = 1;同理g[n-1] = 1
f是从前往后,g是从后往前

这个时间复杂度为O(n)+O(n)+O(n),可理解为O(n)

这里进阶是空间复杂度为O(1)求解,采用的也是前缀积和后缀积,用ret先装前缀积,然后从后往前乘以后缀积。
我们前面采用2个数组装前缀积和后缀积,可以理解得更清晰一些。
在这里插入图片描述

🍹3. 代码实现

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums){int n = nums.size();vector<int> f(n) , g(n);//预处理前缀积f[0] = 1;g[n-1] = 1;for(int i=1;i<n;i++)f[i] = f[i-1] * nums[i-1];//预处理后缀积for(int i=n-2;i>=0;i--)g[i] = g[i+1] * nums[i+1];vector<int> ret(n);for(int i=0;i<n;i++)ret[i]=f[i]*g[i];return ret;}
};

优化空间复杂度:

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums){int n = nums.size();vector<int> ret(n,1);int left = 1;for(int i=1;i<n;i++){left *= nums[i-1];ret[i] = left;}int right = 1;for(int i=n-2;i>=0;i--){right*=nums[i+1];ret[i]*=right;}return ret;}
};
http://www.yayakq.cn/news/318464/

相关文章:

  • 网页模版网站哈尔滨市工程建设监理有限公司
  • 南京网站维护公司企业网站注销流程
  • 山东天成水利建设有限公司网站wordpress 压缩图片大小
  • 网站风格设计要素网站改版做301是啥意思 换域名
  • 网站如何做404免费公司网站模板
  • 专业做鞋子的网站网站设计大全推荐
  • 京紫元年深圳网站建设给个网站免费的
  • 做网站需要执照吗软件代理
  • 查网站二级域名wordpress网站如何引流
  • 企业免费建网站免费php域名网站
  • 上海建网站制做网站要到通信管理局备案
  • 临汾建设局网站网站开发重点难点分析
  • 深圳方维网站建设公司如何设置一个网站
  • 做住宿网站挣钱吗建设网站一定要数据库吗
  • 做暖暖视频网站wordpress多格式视频播放插件
  • 网站开发人员的要求农家乐网站设计
  • 中等职业学校网站建设模块wordpress趣味集
  • 建设部建造师强制注销网站攀枝花seo
  • 网站建设远程培训wordpress联动筛选模板
  • 做网站费用怎么核算wordpress login插件
  • 温州建设网站c 网站开发中间层怎么写
  • 域名绑了小程序还可以做网站吗在线设计logo免费网站
  • 网站建设与管理实践实践报告湖北民族建设集团网站首页
  • 利用网站宣传 两学一做明星个人网站设计模板
  • 自己做网站的视频长治网站建设推广
  • 香水网站模板太月星网站建设程序开发网页设计
  • seo职位信息株洲seo优化哪家好
  • wordpress统计工具做网站花的钱和优化网站有关系吗
  • 自助建设wap网站莱芜网站建设sikesoft
  • 视频直播系统随州网站优化