算法 简单 | 50. 数组剔除元素后的乘积

这是一篇关于算法的博客,详细介绍了如何在不使用除法的情况下计算数组中剔除某个元素后的新数组的乘积。博客通过样例1和样例2展示了问题的输入输出,并提供了Java、C++和Python三种语言的解题思路,主要策略是通过两次循环分别计算数组的前后部分的累乘结果,然后结合这些结果得出最终答案。
摘要由CSDN通过智能技术生成

算法 简单 | 50. 数组剔除元素后的乘积

题目描述

给定一个整数数组A。
定义B[i] = A[0] * … * A[i-1] * A[i+1] * … * A[n-1], 计算B的时候请不要使用除法。
请输出B。

样例1

输入: A = [1, 2, 3]
输出: [6, 3, 2]
解析:B[0] = A[1] * A[2] = 6; B[1] = A[0] * A[2] = 3; B[2] = A[0] * A[1] = 2

样例2

输入: A = [2, 4, 6]
输出: [24, 12, 8]

java题解

分两次循环
第一次记录数组从后往前的累乘结果,f[i]代表i位之后所有元素的乘积
第二次循环,从左往右,跳过 i 左侧累乘,右侧直接乘以f[i + 1]

import java.util.ArrayList;
public class Solution {
   
    public ArrayList<Long> productExcludeItself(ArrayList<Integer> A) {
   
        int len = A.size();
        ArrayList<Long&
用户界面: 1. 数组输入:请输入数组的长度:(用户输入长度) 请输入数组元素:(用户输入元素,以空格分隔) 数组输入成功! 2. 数组排序:请选择排序方式: 1. 升序排序 2. 降序排序 (用户选择排序方式) 排序成功! 3. 元素插入:请输入要插入的元素:(用户输入元素) 请输入要插入的位置:(用户输入位置) 插入成功! 4. 元素查找:请输入要查找的元素:(用户输入元素元素查找成功!该元素数组中的位置为:(输出位置) 5. 元素删除:请输入要删除的元素:(用户输入元素元素删除成功! 6. 数组输出:数组元素为:(输出数组元素) 7. 输出指定位置元素:请输入要查询的位置:(用户输入位置) 该位置的元素为:(输出元素) 8. 对指定个数的数组元素求和:请输入要求和的个数:(用户输入个数) 数组元素求和为:(输出求和结果) 9. 实验报告: 本次实验设计了一个整型数组操作库,实现了数组输入、数组排序、元素插入、元素查找、元素删除、数组输出、输出指定位置元素、对指定个数的数组元素求和等功能。 在用户界面中,用户可以输入数组的长度和元素,进行数组的初始化;也可以选择升序或降序排序方式,进行数组排序;可以插入元素,查找元素,删除元素;输出数组元素和指定位置的元素;求和指定个数的数组元素。 实验中,我们使用了冒泡排序算法进行数组排序,使用了数组下标进行元素插入和删除操作。同时,我们对用户的输入进行了合法性判断,保证了程序的稳定性和正确性。 本次实验让我对数组操作有了更深入的理解,也锻炼了我的编程能力和问题解决能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值