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

【C语言】每日一题(除自身以外数组的乘积)

添加链接描述,链接奉上
在这里插入图片描述

方法:

  • 暴力循环:
  • 前缀积×后缀积(分组):

暴力循环:

暴力循换真的是差生法宝,简单好懂,就是不实用,大多数的题目都会超过时间限制(无奈)

思路:

1.写一个除自身的数组乘积函数
2.利用for循环遍历数组i作为循环变量,当遍历到i时,就求出除i以外的数组乘积
3.放入返回数组中

代码实现:

static int arr[100000];int mul_self(int* nums, int numsSize,int i)//编写一个除自身的数组乘积函数{int mul=1;for(int j=0;j<numsSize;j++){if(j!=i)mul*=nums[j];}return mul;}
int* productExceptSelf(int* nums, int numsSize, int* returnSize)
{*returnSize=numsSize;int n=0;for(int i=0;i<numsSize;i++)//循环遍历,求出每个除i外数组的乘积{arr[n++]=mul_self(nums,numsSize,i);}return arr;
}

但是此方法局限大,时间超出限制。

前缀积×后缀积(分组):

思路:

根据题目提示,利用前缀积×后缀积即可得到答案,那么问题就演化为求前缀积与后缀积
创建两个数组,一个用来存放前缀积,另一个存放后缀积。
最后循环,将两者相乘,得到除了nums[i]外的数组乘积

在这里插入图片描述

代码实现:

static int ans[100000];int* productExceptSelf(int* nums, int numsSize, int* returnSize)
{int lsum[numsSize];//创建数组int rsum[numsSize];lsum[0]=1;//将边界赋值为1rsum[numsSize-1]=1;for(int i = 1;i < numsSize; i++)//求前缀积{lsum[i]=lsum[i-1]*nums[i-1];}for(int i = numsSize-2;i >= 0;i--)//求后缀积{rsum[i]=rsum[i+1]*nums[i+1];}for(int i = 0;i<numsSize;i++)//求结果数组{ans[i]=lsum[i]*rsum[i];}*returnSize=numsSize;return ans;}

欢迎纠错与讨论哦

http://www.lryc.cn/news/146478.html

相关文章:

  • C语言每日一练-----Day(4)
  • 如何使用工具将批量查询的物流信息导出到表格
  • Haproxy+Keepalive 整合rabbitmq实现高可用负载均衡
  • 电子病历系统的核心技术——电子病历编辑器
  • C++------map和set的使用
  • URI和URL和URN区别
  • 【Unity学习笔记】DOTween(1)基础介绍
  • springboot项目,使用JNA框架调用C++库无法捕获异常的解决思路
  • 【项目 计网7】4.20 多进程实现并发服务器 4.22 多线程实现并发服务器
  • 论文阅读_扩散模型_LDM
  • LeetCode——回溯篇(二)
  • RabbitMQ工作模式-发布订阅模式
  • JDK源码解析-Object
  • pinia——添加插件——基础积累
  • 软件国产化之殇
  • SQLyog问题处理集合
  • JavaSE【继承和多态】(1)(重点:初始化、pretected封装、组合)
  • 无涯教程-Android Studio函数
  • CentOS8安装mysql8.0.24
  • Quasi-eccentricity Error Modeling and Compensation in Vision Metrology
  • ai智能电话机器人是人类的助手和朋友
  • 应用TortoiseSVN的SubWCRev管理VisualStudio C#项目编译版本号
  • 【八股】2023秋招八股复习笔记5(计算机网络-CN)
  • 【C++】SLT——Vector详解
  • 企业网络安全:威胁情报解决方案
  • 为什么2G、3G、4G成功了,5G却?
  • C语言每日一练------Day(10)
  • 发力服务业务,龙湖集团半程领跑赢在“智慧”
  • Kubernetes(七)修改 pod 网络(flannel 插件)
  • 测试平台metersphere