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

面试编程题(三)

一、除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。

请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

int* productExceptSelf(int* nums, int numsSize, int* returnSize) {int* ret = (int*)malloc(numsSize * sizeof(int));*returnSize = numsSize;//记录左边和右边的乘积int left = 1, right = 1;// 第一次循环,将当前位置左边的数字乘积填入返回数组中for (int i = 0; i < numsSize; i++) {ret[i] = left; // 1 nums[0] nums[0]*nums[1] num[0]*nums[1]*nums[2] ....left *= nums[i];}// 第二次循环,对于返回数组的元素从后往前进行,每次乘以右边元素的乘积for (int i = numsSize - 1; i >= 0; i--) {ret[i] *= right; // 最后一个成绩不需要乘以最后元素,乘以1就行right *= nums[i]; // right变化:1 nums[end] nums[end]*nums[end-1] .....}return ret;
}

        这道题可以简单的暴力求解,先求一遍整个数组的乘积,然后在分别除以对应的数即可。现在我用left和right来记录数组中对应位置的左边和右边的乘积,最后把他们给乘起来就可以得到最后的满足题目要求的答案。

leetcodehttps://leetcode.cn/problems/product-of-array-except-self/description/

http://www.dtcms.com/a/390931.html

相关文章:

  • SSD性能优化之4K对齐
  • dolphindb vscode更改连接配置的操作步骤
  • 船用配电盘在线绝缘监测故障定位系统
  • 爬虫逆向--Day22Day23--核心实战案例【四川农机购置与补贴信息】【Webpack国密SM3、SM4】
  • 计算机网络————第二章 物理层
  • uniapp usb调试鸿蒙一直连接不上。
  • MySQL独立表空间:优缺点与最佳实践
  • 直播预告 | P4 One正式发布:让创新协作更简单、更安全、更可靠
  • Zookeeper脑裂是什么原因导致的?
  • APK360加固与“脱壳”:移动应用安全的攻与防
  • langchain-routerchain
  • 第四章:VSCode编辑器使用介绍
  • Problem: lab-week3- exercise03 Selection sort
  • Vue 事件总线 主流的一些npm包推荐
  • 总线协议如何支持总线错误条件?
  • N-156基于springboot,vue小区物业管理系统
  • 物理心理学 (Psychophysics) - 阈值 (Threshold) 测量方法 - 人因工程笔记2
  • 从 “数据采集” 到 “性能跃迁”:Simcenter LMS 如何用振动噪声试验,激活高端装备核心竞争力?
  • 【STL vector的全面指南】基础操作与底层实现<1>
  • 微服务-基础知识(CAP、BASE)
  • 存储卷清理策略在vps环境磁盘空间维护的操作指南
  • Day46 ARM硬件体系 从计算机架构、处理器类型、指令集到内核寄存器与SoC总线结构
  • 【MySQL】从视图到用户和权限管理
  • 栈与队列:核心差异与应用场景
  • 【Hadoop】ZooKeeper:分布式系统的协调核心与一致性保障
  • AWS 全球机房延迟对比 区域选型经验分享
  • 免费插件分享 |Scene Switcher Pro
  • Vue前端开发工具有哪些?常用Vue开发工具推荐、Vue前端开发工具对比与最佳实践分享
  • 信道管理模块实现
  • Java 网络原理(一)--- 自定义协议,UDP协议和TCP协议