LeetCode--HOT100题(16)

news2024/10/2 20:31:46

目录

  • 题目描述:238. 除自身以外数组的乘积(中等)
    • 题目接口
    • 解题思路
    • 代码
  • PS:

题目描述:238. 除自身以外数组的乘积(中等)

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n) 时间复杂度内完成此题。

LeetCode做题链接:LeetCode-除自身以外数组的乘积

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

题目接口

class Solution {
    public int[] productExceptSelf(int[] nums) {

    }
}

解题思路


如果不考虑空间复杂度的话可以定义多个数组,但是题目要求出结果数组后O(1)就得这样

代码

class Solution {
    public int[] productExceptSelf(int[] nums) {
		int len = nums.length;
        int[] res = new int[len];
        // 将第一个元素值置为0
        res[0] = 1;
        // 求出前缀乘积
        for (int i = 1; i < len; i++) {
            res[i] = res[i - 1] * nums[i - 1];
        }
        // 定义一个后缀乘积的变量
        int tmpNum = 1;
        for (int i = len - 1; i > -1; i--) {
            // 前缀乘后缀等于最终结果
            res[i] = res[i] * tmpNum;
            // 累乘得到后缀乘积
            tmpNum *= nums[i];

        }
        return res;
    }
}

成功!
在这里插入图片描述

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/836170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

el-table那些事

el-table那些事 获取el-table所有勾选的行数据 用于记录工作和日常学习遇到的坑&#xff0c;需求。 vue3element-plusts 获取el-table所有勾选的行数据 1、需要先声明一个ref变量&#xff0c;并赋值给el-table 2、通过el-table提供的getSelectionRows()函数获取选中的"行…

嵌入式系统:连接数字世界的未来

嵌入式设备是专用微型计算机&#xff0c;由硬件、系统级软件和应用软件三个层次组成。硬件包括处理器、存储和各种I/O接口。系统级软件涵盖操作系统和各种I/O子系统。应用软件包括基于不同操作系统的开发。 几乎所有带数字接口的设备都使用嵌入式系统&#xff0c;从大型飞机到…

媒介易讲解体育冠军助力品牌解锁市场营销新玩法

在当今竞争激烈的市场中&#xff0c;品牌推广成为企业取得商业成功的重要一环。然而&#xff0c;随着传统市场推广方式的日益饱和&#xff0c;企业急需创新的市场营销策略来吸引消费者的关注和认可。在这样的背景下&#xff0c;体育冠军助力品牌成为了一种备受瞩目的市场营销新…

MongoDB文档-进阶使用-MongoDB索引-createindex()与dropindex()-在MongoDB中使用正则表达式来查找

阿丹&#xff1a; 之前研究了MongoDB的基础增删改查。在学会基础的数据库增删改查肯定是不够的。这个时候就涉及到了数据库搜索的时候的效率。需要提高数据的搜索效率。 MongoDB索引 在所以数据库中如果没有数据索引的时候。如果需要查找到一些数据。都会去主动扫描所有可能存…

无涯教程-Perl - 面向对象

Perl中的面向对象概念很大程度上基于引用以及匿名数组和哈希。让我们开始学习面向对象Perl的基本概念。 定义类 在Perl中定义一个类非常简单。类以最简单的形式对应于Perl软件包。要在Perl中创建一个类&#xff0c;我们首先构建一个包。 Perl软件包在Perl程序中提供了一个单…

Java-day05(面向对象-1)

面向对象 面向对象与面向过程的区别&#xff1a; 面向过程&#xff0c;强调功能行为&#xff1b;面向对象&#xff0c;强调功能的对象。 Java类及类成员 类&#xff1a;对一类事物描述&#xff0c;是抽象的&#xff0c;概念上的定义对象&#xff1a;实际存在的该类事物的每…

(自控原理)线性系统的频域分析法

目录 一、频率特性 1、频率特性的基本概念 2、频率特性的几何表示方法 二、典型环节与开环系统的频率特性 1、典型环节 2、开环对数的频率特性曲线 三、稳定裕度 1、相角裕度 2、幅值裕度 一、频率特性 1、频率特性的基本概念 2、频率特性的几何表示方法 二、典型环节…

<van-empty description=““ /> 滚动条bug

使用 <van-empty description"" /> 时&#xff0c;图片出现了个滚动条&#xff0c;图片可以上下滑动。 代码如下&#xff1a; <block wx:if"{{courseList.length < 0}}"><van-empty description"" /> </block> <…

跨境电商怎么做?Live Market教你创业及做大生意

随着全球化的不断深入和互联网技术的迅猛发展&#xff0c;跨境电商成为了一个蓬勃发展的行业。根据eMarketer的数据&#xff0c;2021年全球跨境电商销售额将达到4.5万亿美元&#xff0c;预计到2025年将增长至6.3万亿美元。这表明&#xff0c;跨境电商行业将继续保持强劲增长的趋…

uni-app:分页实现多选功能

效果 代码解析 一、标签-列表 <view class"item_all" v-for"(item, index) in info" :key"index"><view class"position parameter-info text-over" :class"{checked_parameter: item.checked}" :data-id"i…

EditPlus取消自动.bak备份

Tools->Preferences->File 将√取消

Java正则校验密码至少包含:字母数字特殊符号中的2种

一、语法 字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如&#xff0c; n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ &#xff0c;\\( 匹配 (。^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性&#xff0c;^ 还会与"\n…

如何开发一个企业ERP系统

企业ERP系统是一种针对企业管理和运营的综合性管理软件&#xff0c;旨在提高企业的效率和生产力。随着信息化时代的发展&#xff0c;越来越多的企业意识到引入ERP系统的重要性。本文将详细介绍如何开发一个企业ERP系统&#xff0c;为读者提供丰富、详细的信息。 一、需求分析 …

基于SpringBoot+Vue的地方美食分享网站设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

SQL SERVER ROW_NUMBER、RANK、DENSE_RANK 分页应用

** ROW_NUMBER 、RANK、DENSE_RANK** ROW_NUMBER () over( order by 列) # 不论【列】是否存在重复&#xff0c; 序号都不会重复的&#xff0c;通常用唯一个标识的列 RANK() over(order by 列) # 列 存在重复&#xff0c; 则 顺序号一致&#xff0c; 两个人并列第一&#xff0c…

SpringBoot Plus+代码生产器

0目录 1. Mybatis Plus 2.代码生产器 1.Mybatis Plus 创建数据库和表&#xff08;id没有设置主键和自增长&#xff09; 创建springBoot导入依赖 安装lombok 配置yml 实体类加入注解 无参构造和有参构造 Mapper接口 扫描接口 测试 加入日志 添加 数据库…

Springboot 多数据源 dynamic-datasource动态添加移除数据源

0.前言 上一篇文章我们讲了如何通过多数据源组件&#xff0c;在Spring boot Druid 连接池项目中配置多数据源&#xff0c;并且通过DS注解的方式切换数据源&#xff0c;《Spring Boot 配置多数据源【最简单的方式】》。但是在多租户的业务场景中&#xff0c;我们通常需要手动的…

Python:Spider爬虫工程化入门到进阶(2)使用Spider Admin Pro管理scrapy爬虫项目

Python&#xff1a;Spider爬虫工程化入门到进阶系列: Python&#xff1a;Spider爬虫工程化入门到进阶&#xff08;1&#xff09;创建Scrapy爬虫项目Python&#xff1a;Spider爬虫工程化入门到进阶&#xff08;2&#xff09;使用Spider Admin Pro管理scrapy爬虫项目 目录 1、使…

排序算法(九大)- C++实现

目录 基数排序 快速排序 Hoare版本&#xff08;单趟&#xff09; 快速排序优化 三数取中 小区间优化 挖坑法&#xff08;单趟&#xff09; 前后指针法&#xff08;单趟&#xff09; 非递归实现&#xff08;快排&#xff09; 归并排序 非递归实现&#xff08;归并&am…

小程序https域名校验文件放在根目录

1. 下载校验文件 微信公众号平台 - 开发管理 - 开发设置 - 业务域名 2. 将校验文件放在服务器nginx - html 目录下 3. 修改nginx.conf 我这里配置的https主要是用来转发后台接口路径的 4. 验证 https://域名/校验文件名.txt&#xff0c;有返回即配置成功