[LeetCode] Product of Array Except Self

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

Solve it without division and in O(n).

For example, given [1,2,3,4], return [24,12,8,6].

Follow up:
Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)

解题思路

两次遍历,第一次遍历,将0i-1的乘积放入res[i];第二次遍历,记录i+1len-1的乘积,再与左边的乘积相乘,得到最终结果放入res[i]

实现代码

// Runtime: 3 ms
public class Solution {
    public int[] productExceptSelf(int[] nums) {
        int[] res = new int[nums.length];
        Arrays.fill(res, 1);
        int left = 1;
        for (int i = 0; i < nums.length - 1; i++) {
            left *= nums[i];
            res[i + 1] = left;
        }

        int right = 1;
        for (int i = nums.length - 1; i > 0; i--) {
            right *= nums[i];
            res[i - 1] *= right;
        }

        return res;
    }
}
时间: 2024-12-24 13:30:42

[LeetCode] Product of Array Except Self的相关文章

[LeetCode]238.Product of Array Except Self

题目 Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in O(n). For example, given [1,2,3,4], return [24,12,8,6].

[LeetCode]189.Rotate Array

题目 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. Note: Try to come up as many solutions as you can, there are at least 3 different ways to solve this

LeetCode All in One 题目讲解汇总(持续更新中...)

终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 如果各位看官们,大神们发现了任何错误,或是代码无法通过OJ,或是有更好的解法,或是有任何疑问,意见和建议的话,请一定要在对应的帖子下面评论区留言告知博主啊,多谢多谢,祝大家刷得愉快,刷得精彩,刷出美好未来- 博主制作了一款iOS的应用"Leetcode Meet Me",里面有Leetcode上所有的题目,并且贴上了博主的解法,随时随地都能

通过Safari浏览器获取iOS设备UDID(设备唯一标识符)

摘要:通过苹果Safari浏览器获取iPhone UDID步骤详解:苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数). 通过苹果Safari浏览器获取iPhone UDID步骤详解: 一.获得UDID通过移动Safari概述: 苹果公司允许开发者通过IOS设备和Web服务器之间的某个操作,来获得IOS设备的UDID(包括其他的一些参数).这里的一个概述: 1.在你的Web服务器上创建一个.mobileconfig的XML格式的描述文件

Install MATLAB 2013a on CentOS 6.4 x64 with mode silent

首先要下载安装光盘. Matlab801_MacUnix.iso [root@db-172-16-3-150 mnt]# md5sum /ssd1/Matlab801_MacUnix.iso 0d31a7ff79eaf48c0905f9845fa3e825 /ssd1/Matlab801_MacUnix.iso 挂载 :  mount -o loop,ro Matlab801_MacUnix.iso /mnt 光盘内容 :  [root@db-172-16-3-150 ~]# cd /mnt [

如何使用Spark ALS实现协同过滤

本文主要记录最近一段时间学习和实现Spark MLlib中的协同过滤的一些总结,希望对大家熟悉Spark ALS算法有所帮助. 更新: [2016.06.12]Spark1.4.0中MatrixFactorizationModel提供了recommendForAll方法实现离线批量推荐,见SPARK-3066. 测试环境 为了测试简单,在本地以local方式运行Spark,你需要做的是下载编译好的压缩包解压即可,可以参考Spark本地模式运行. 测试数据使用MovieLens的MovieLens

doctrine2到底是个什么玩意

之前和最近一个项目用到了Doctrine,由于是别人搭建的,自己没有很了解,最近又开始做的时候发现拙荆见肘,于是看了一下doctrine教程,本文就是加上自己理解的doctrine教程文档笔记了. Doctrine2 配置需求 需要php5.3.3及以上 可以使用composer安装 什么是Doctrine? Doctrine是一个ORM(Object-relational mapper),提供php数据库和PHP对象的映射.他和其他的ORM一样都是为了保证持久层和逻辑层的分类而存在的. 什么是

通过Safari与mobileconfig获取iOS设备UDID(设备唯一标识符)

科普:UDID 是由子母和数字组成的40个字符串的序号,用来区别每一个唯一的iOS设备,包括 iPhones, iPads, 以及 iPod touches 随着苹果对程序内获取UDID封杀的越来越严格,私有api已经获取不到UDID,Mac地址等信息,继而出现了使用钥匙串配合uuid等等方法变相实现 由于近期项目需求是设备授权的形式使用软件,使用钥匙串等方法不完全能解决问题,因为重置或重做系统都会清除uuid然后重新存入,所以想到了用safari的方式获取设备真实的UDID 先看下效果,真机打

magento php-magento1.8.0中如何使用soapapi

问题描述 magento1.8.0中如何使用soapapi 通过 SOAP 访问 Magento API 基本步骤 1. 创建合适的角色 (Magento Admin) 2. 创建 web services 用户 (Magento Admin) 3. 分配用户合适的角色 (Magento Admin) 4. 登入 web service 并获取 Session Id (Soap Client) 5. 调用相关的方法 (Soap Client) 步骤一. 创建 Web Service 角色 Mag