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

[Java][Leetcode middle] 238. 除自身以外数组的乘积

第一个想法是:

想求出所有元素乘积,然后除以i对应的元素本书;这个想法是完全错误的:

  1. nums[I] 可能有0
  2. 题目要求了不能用除法

第二个想法是:

其实写之前就知道会超时,但是我什么都做不到啊!
双重循环,O(n2)

第三个做法: 借助辅助数组,官方题解

借助辅助数组:使用L[i],R[i],分别记录i左边和右边元素的乘积
那么res[I],就是L[I]*R[i]

public int[] productExceptSelf2(int[] nums) {int len = nums.length;int[] result = new int[len];int[] R = new int[len]; //  the right of i: multiplyint[] L = new int[len]; // the left of i: multiplyL[0] = 1;R[len - 1] = 1;for (int i = 1; i < len; i++) {L[i] = L[i - 1] * nums[i - 1];}for (int i = len - 2; i >= 0; i--) {R[i] = R[i + 1] * nums[i + 1];}for (int i = 0; i < len; i++) {result[i] = L[i] * R[i];}return result;}
}

做法四:先用result[]代替上文的L[]

    public int[] productExceptSelf3(int[] nums) {int len = nums.length;int[] result = new int[len];result[0] = 1;for (int i = 1; i < len; i++) {result[i] = result[i - 1] * nums[i - 1];}int R = 1;for(int i = len-1 ; i >= 0 ; i--) {result[i] = R * result[i];R *= nums[i];}return result;}
http://www.xdnf.cn/news/483103.html

相关文章:

  • 学习alpha
  • 【基础】Windows开发设置入门4:Windows、Python、Linux和Node.js包管理器的作用和区别(AI整理)
  • go.mod关于go版本异常的处理
  • 数据治理域——数据同步设计
  • HTML 中的 input 标签详解
  • 芯片测试之X-ray测试
  • 算法练习:19.JZ29 顺时针打印矩阵
  • SpringAI-RC1正式发布:移除千帆大模型!
  • handsome主题美化及优化:10.1.0最新版 - 2
  • [Unity]AstarPathfindingProject动态烘焙场景
  • 电脑出故障驱动装不上?试试驱动人生的远程服务支持
  • Vue3项目,子组件默认加载了两次,使用 defineAsyncComponent 引入组件后只加载一次
  • 简单入门RabbitMQ
  • Centos7 中 Docker运行配置Apache
  • 基于Scrapy-Redis的分布式景点数据爬取与热力图生成
  • skywalking使用教程
  • LLaMA-Factory:环境准备
  • 大语言模型核心技术解析:从训练到部署的全链路实践
  • Python web 开发 Flask HTTP 服务
  • leetcode 2901. 最长相邻不相等子序列 II 中等
  • 测试工程师如何学会Kubernetes(k8s)容器知识
  • 05-SpringBoot
  • 链表的中间结点数据结构oj题(力扣876)
  • BM25 算法与关键词提取在向量数据库中的实践优化
  • tomcat一闪而过,按任意键继续以及控制台中文乱码问题
  • 基于javaweb的SSM驾校管理系统设计与实现(源码+文档+部署讲解)
  • 遥感图像非法采矿矿区识别分割数据集labelme格式1818张3类别
  • R语言如何解决导出pdf中文不显示的问题
  • 苹果新一代车载系统CarPlay Ultra来袭,全屏接管+ChatGPT助力,智能驾驶要“起飞”
  • 钉钉报销与金蝶付款单系统对接技术揭秘