A Product Array Puzzle

Given an array arr[] of n integers, construct a Product Array prod[] (of same size) such that prod[i] is equal to the product of all the elements of arr[] except arr[i]. Solve it without division operator and in O(n).

Example:
arr[] = {10, 3, 5, 6, 2}
prod[] = {180, 600, 360, 300, 900}

 1     public static int[] selfExcluding(int[] input){
 2         if(input == null || input.length == 0) return null;
 3         int len = input.length;
 4         int[] output = new int[len];
 5         for(int i = 0; i < len; i ++){
 6             output[i] = 1;
 7         }
 8         int left = 1, right = 1;
 9         for(int i = 1; i < input.length; i ++){
10             left *= input[i - 1];
11             output[i] *= left;
12             right *= input[len - i];
13             output[len - i - 1] *= right;
14         }
15         return output;
16     }

A Product Array Puzzle

时间: 2024-10-08 15:48:39

A Product Array Puzzle的相关文章

magento related/upsell product 及产品/分类调用

catalog/product调用 $product_model = Mage::getModel('catalog/product'); $product = $product_model->load($product_id); //可通过product_id 获取 product_name$product->getName(); $product_url = $product->getUrlModel()->getUrl($product, array('_ignore_cat

destoon后台权限-不给客户创始人权限并屏蔽部分功能

1.根目录下后台入口文件admin.php $_founder = $CFG['founderid'] == $_userid ? $_userid : 0;  //  $CFG['founderid'] 是config.php里指定的网站创始人账户id配置项,$_founder 存储了创始人id,如果不是创始人则$_founder为0: (1) inc.php文件里可以通过if($_founder) 判断是否是创始人. (2) 后台模板  tpl.php 里可以通过 <?php if($_fo

thinkPHP的RBAC权限管理

thinkphp自带一个权限类:RBAC.class.php,里面有生成表的create table语句,也就是它的数据库设计,还有一些方法,比如getAccessList(),可以根据管理员ID号获得权限节点. 1.涉及到的表有五个,为了方便理解,可以总结为: 用户表(user):顾名思义,就是用户了,比如admin.张三.李四.王五 角色表(role):顾名思义,就是定义好的角色,比如财务管理员.文章管理员.产品管理员 用户角色关系表(user_role):顾名思义,就是将用户和角色对应起来

Linq常用查询运算符

Linq一共包含五十几个查询运算符,常用的根据类型来区分一共有5类左右,这五类里面一些事在项目查询中经常用到的.不过linq运算符的命名十分规范,基本从字面意思就能猜测出来是干嘛用的,下面我们挑选一些常用的来介绍一下.根据分类我们能分成下面4种类型: 1.返回IEnumerable<T>类型的 1.1 Where:主要用于对于序列的筛选,跟在sql中对数据筛选用法是一样的 1 int[] array = { 1, 3, 5, 7, 2 }; 2 var query = array.Where(

数值编程工具:NumPy的详细教程

翻译原文来自:http://wiki.scipy.org/Tentative_NumPy_Tutorial 目录 1.准备工作 2.基础篇 一个例子 创建数组 打印数组 基本运算 通用函数(ufunc) 索引,切片和迭代 3.形状操作 更改数组的形状 组合(stack)不同的数组 将一个数组分割(split)成几个小数组 4.复制和视图 完全不拷贝 视图(view)和浅复制 5.深复制 函数和方法(method)总览 6.进阶 广播法则(rule) 7.花哨的索引和索引技巧 通过数组索引 通过布

NumPy的详细教程

NumPy的详细教程 转载 http://blog.csdn.net/chen_shiqiang/article/details/51868115 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想从新回忆下,请看看 Python Tutorial . 如果你想要运行教程中的示例,你至少需要在你的电脑上安装了以下一些软件: Python NumPy 这些是可能对你有帮助的: ipython 是一个净强化的交互Python Shell,对探索NumPy的特性非常方便. matpl

【转】numpy教程

[转载说明] 本来没有必要转载的,只是网上的版本排版不是太好,看的不舒服.所以转过来,重新排版,便于自己查看. 基础篇 NumPy的主要对象是同种元素的多维数组. 这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字). 在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank). 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴.那个轴长度为3. 又例如,在以下例子中,数组的秩为2(它有两个维度)

微信分享功能开发代码整理

微信分享对接php项目: 做微信分享开发要注意所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名” 1,Jssdk类包的引入Jssdk.class.php生成注册微信官方分享按钮的权限参数,代码如下: <?php // +---------------------------------------------------------------------- // | 微信分享核心包类 // +--------

Numpy 常用矩阵计算函数

基本属性 在做一些数据分析的时候,我们通常会把数据存为矩阵的形式,然后python本身对于矩阵的操作是不够的,因此出现了numpy这样一个科学开发库来进行python在次上面的不足. Numpy's array 类被称为ndarray. 这个对象常用而重要的属性如下: ndarray.ndim: 输出矩阵(数组)的维度 ndarray.shape: 输出矩阵的各维数大小,相当于matlab中的size()函数 ndarray.size: 输出矩阵(数组)元素的总个数,相当于各维数之积 ndarr