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

【leetcode】238.除自身以外数组的乘积

由于该题不能使用除法,所以参考题解写一个左右乘积列表的方法
创建两个新的数组pef,suf
一个用于记录从左到右的乘积(类似于动态规划的思想)pef
另一个记录从右到左的乘积 bsuf(注意suf是从右到左进行累乘)
而pef的最左端为1,suf的最右端为1
如此在结尾的时候只需要pef*suf即可
举例,
ans[0]=pef[0]*suf[0]
pef[0]=1
suf[0]=除了nums[0]以外所有元素的乘积

代码:



int* productExceptSelf(int* nums, int numsSize, int* returnSize)
{
	*returnSize = numsSize;
	int* pef = (int*)malloc(sizeof(int) * numsSize);
	int* suf = (int*)malloc(sizeof(int) * numsSize);
	pef[0] = 1;
	suf[numsSize - 1] = 1;
	for (int i = 1; i < numsSize; i++)
	{
		pef[i] = pef[i - 1] * nums[i - 1];
	}
	for (int i = numsSize - 2; i >= 0; i--)
	{
		suf[i] = suf[i + 1] * nums[i + 1];
	}
int* arr = (int*)malloc(sizeof(int) * numsSize);
	for (int i = 0; i < numsSize; i++)
	{
		arr[i] = pef[i] * suf[i];
	}
	return arr;
}


 

 


http://www.kler.cn/news/339439.html

相关文章:

  • 关于银联支付交易状态码的一些分析
  • 宠物咖啡馆业务流程:SpringBoot框架的高效实现
  • wildcard使用教程,解决绝大多数普通人的海外支付难题
  • firfly-rockchip sdk 环境搭建-Ubuntu24.04
  • 光伏电站线缆怎么选型
  • jmeter学习(4)提取器
  • YOLOv8改进线性注意力模块 ICCV2023 FLatten Transformer
  • 五十一、架构设计经验与技巧(实践经验)
  • windows C++-创建图像处理的异步消息(三)
  • Linux 基本系统命令及其使用详解手册(九)
  • yum 源配置
  • 后端路由解析:不同请求类型与数据定位
  • 前端vue-配置基地址并发送请求
  • Android开发:日志功能备忘
  • 回到原点再出发
  • 详解 Pandas 的 melt 函数
  • 【万字长文】Word2Vec计算详解(二)
  • 白盒和灰盒和黑盒测试
  • MFC多媒体定时器实例(源码下载)
  • 单片机教案 1.2 ATmega2560单片机和Arduino IDE编程基础