首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

除自身以外数组的乘积(LeetCode 238)

1.问题描述 给你一个整数数组 nums,返回数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。...可以先计算给定数组所有元素的乘积,然后对数组中的每个元素 x,将乘积除以 x 求得除自身值以外的数组乘积。 然后这样的解决方法有一个问题,就是如果输入数组中出现 0,那么这个方法就失效了。...= i { p *= v } } products[i] = p } return products } 4.2 左右乘积列表 我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案...对于给定索引 i,我们将使用它左边所有数字的乘积乘以右边所有数字的乘积。 具体步骤如下: 初始化两个空数组 L 和 R。...对于给定索引 i,L[i] 代表的是 i左侧所有数字的乘积,R[i] 代表的是 i 右侧所有数字的乘积。 我们需要用两个循环来填充 L 和 R 数组的值。

14410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    除自身以外数组的乘积

    给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。...示例 1: 输入: nums = [1,2,3,4] 输出: [24,12,8,6] 示例 2: 输入: nums = [-1,1,0,-3,3] 输出: [0,0,9,0,0] 我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案...对于给定索引 iii,我们将使用它左边所有数字的乘积乘以右边所有数字的乘积。下面让我们更加具体的描述这个算法。 算法     初始化两个空数组 L 和 R。...对于给定索引 i,L[i] 代表的是 i 左侧所有数字的乘积,R[i] 代表的是 i 右侧所有数字的乘积。     我们需要用两个循环来填充 L 和 R 数组的值。...// 对于索引 i,除 nums[i] 之外其余各元素的乘积就是左侧所有元素的乘积乘以右侧所有元素的乘积 for (int i = 0; i < length; i++) {

    15230

    leetcode刷题(118)——除自身以外数组的乘积

    给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。...题解: 我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案,而是利用索引左侧所有数字的乘积和右侧所有数字的乘积(即前缀与后缀)相乘得到答案。...方法一:左右乘积列表 1.初始化两个空数组 L 和 R。对于给定索引 i,L[i] 代表的是 i 左侧所有数字的乘积,R[i] 代表的是 i 右侧所有数字的乘积。...} // 对于索引 i,除 nums[i] 之外其余各元素的乘积就是左侧所有元素的乘积乘以右侧所有元素的乘积 for (int i = 0; i < length; i...算法 1.初始化 answer 数组,对于给定索引 i,answer[i] 代表的是 i 左侧所有数字的乘积。

    27120

    python学习笔记(1)

    匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?...匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?...将匹配单个 “o”,而 ‘o+’ 将匹配所有 ‘o’。 . 匹配除换行符(\n、\r)之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像"(.|\n)"的模式。...#若有多个字符,则只显示最高位, print(t.rfind('a',0,7)) # 15、index()返回S中找到子字符串子的最低索引, # 使子包含在S[start:end]中。...未找到子字符串时引发ValueError print(t.index('c',1,3)) # 16、rindex()返回S中找到子字符串子的最高索引, # 使子包含在S[start:end]中。

    1.7K42

    python学习笔记(九)、模块

    使用shelve,如果想保证从Shelf对象读取或赋值的所有数据结构都将保存到内存(缓存)中,并等到你关闭Shelf对象时才将它们写入磁盘,可以将writeback参数设置为True。...,其中包含字符串中所有与模式匹配的子串       sub(pat, replace, string[, count=0])        将字符串中与模式pat匹配的子串都替换为replace escape...    3  dd     通常,编组包含诸如通配符和重复运算符等特殊字符,因此你可能想知道与给定编组匹配的内容。...re中匹配对象的重要方法有:     group([group1,...]):获取与给定模式(编组)匹配的子串。     start([group]):返回与给定编组匹配的子串的起始位置。     ...end([group]):返回与给定编组匹配的子串的终止位置。(与切片一样,不包含终止位置)     span([group]):返回与给定编组匹配的子串的起始和终止位置。

    91940

    MySQL权限详解

    (其中,All或者Allprivileges代表权限列表中除Grant option权限之外的所有权限)。...在上图所示的权限列表中,Context字段显示了该权限的使用环境(或者叫权限的作用域)。根据Context字段内容的不同,权限分为如下三类。...、数据库内给定类型的对象,也可以是所有数据库(*....其中,reload子命令会通知服务器将权限表重新加载到内存中;flush-privileges子命令的作用与reload相同;refresh子命令会通知服务器关闭并重新打开日志文件且刷新所有表。...全局级别权限,拥有该权限的用户可以登录到数据库服务器中,但在默认配置下除能够执行部分show命令之外,其他任何数据变更和数据库查询操作都无法执行。

    4.3K30

    Python3 String(字符串)

    - string.splitlines([keepends])         - 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False...   []       通过索引获取字符串中字符        a[1]输出结果e   [:]       截取字符串中的一部分        a[1:4] 输出结果ell   in       成员运算符...:-如果字符串中包含给定的字符返回True        H in a 输出结果 1   not in       成员运算符,- 如果字符串中不包含给定的字符返回True        M not a...输出结果1   r/R       原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,...print r’\n’ prints \n 和 print R’\n’ prints \n   %       格式字符串        请看下一行内容.

    72000

    java nio剖析

    可以把它看做内存中的一个大的数组,用来存储来自信道的同一类型的所有数据,因此,程序员可以使用字节、字符、整数等缓冲区。...缓冲区基本上是一块内存区域,因而可以执行一些与内存有关的操作,如清除其中的内容,支持读写或只读操作等。 所有的 buffer 类都位于 java.nio 包中。...read(ByteBuffer[] dsts, int offset, int length) 将字节序列从此通道读入给定缓冲区的子序列中 d....使用缓冲区 ● 层次结构 所有缓冲区的基类都是Buffer,除Boolean类型外,其它数据类型都有对应的缓冲区类, 另有一个ByteOrder类,用来设置缓冲区的大小端顺序,即BigEndian...当对FileChannel执行映射操作,把文件映射到内存中时,得到的是一个连接到文件的 映射的字节缓冲区,这种映射的结果是,当输出缓冲区的内容时,数据将出现在文件中, 当读入缓冲区时,相当于得到文件中的数据

    47420

    如何学习算法:什么时完全二叉树?完全二叉树有什么特点?

    二叉树有一个限制,因为树的任何节点最多有两个子节点:左子节点和右子节点。 什么是完全二叉树? 完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点从尽可能左侧填充之外。...二叉树有一个限制,因为树的任何节点最多有两个子节点:左子节点和右子节点. 什么是完全二叉树? 完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点尽可能左侧填充之外。...在完全二叉树中,深度d处的节点数为 2 d。 在具有n 个节点的完全二叉树中,树的高度为log(n+1)。 除最后一个级别外所有级别均已满。...在数组中,所有元素都是连续存储的。 示例2: 给定二叉树的高度为 2,节点的最大数量为 2h+1 – 1 = 22+1 – 1 = 2 3 – 1 = 7。 但树中的节点数是6。...i 处,则该节点的左子节点位于索引 (2i + 1) 处,右子节点位于索引处 (2i + 2)在数组中。

    17110

    rebar3-命令

    常用的扩展参数如下: Option Type Description --dir 逗号分隔的字符串列表 编译并运行指定目录下的所有测试套件 --suite 逗号分隔的字符串列表 编译并运行指定的测试套件...添加了与ct_run奇偶校验的选项,通常rebar3应该处理包含文件路径 --name、--sname 字符串 使用给定的名字启动一个分布式节点 --setcookie 字符串 设置一个分布式cookie...生成HTML报告 选项 类型 描述 --reset/-r none 重置所有覆盖数据 --verbose/-v none 在终端打印覆盖分析信息 通过向配置文件中添加·{cover_excl_mods...of 除主应用程序及依赖项之外(来自app文件),还包括在escript存档中的应用程序列表。...13. help ---- 显示给定任务或子任务的任务或帮助列表 选项 类型 描述 string 打印任务的帮助信息 string 打印<namespace

    1.6K10

    Google Earth Engine(GEE)——数组及其切片简介

    数组的元素类型表示每个元素是什么类型的数字;数组的所有元素都将具有相同的类型。 Earth Engine 中的数组由数字列表和列表列表构成。嵌套的程度决定了维数。...0 轴上每个列表中的第 n 个元素位于 1 轴上的第 n 个位置。例如,数组坐标 [3,1] 处的条目是 0.0849。假设“绿色度”是感兴趣的 TC 分量。...您可以使用slice()以下方法获得绿色子矩阵: 函数: slice(axis, start, end, step) 通过以“step”为增量沿给定轴从“开始”(包括)到“结束”(不包括)切出每个位置来创建子数组...结果将具有与输入一样多的维度,并且在除切片轴之外的所有方向上都具有相同的长度,其中长度将是从“开始”到“结束”的“步长”范围内的位置数输入数组沿“轴”的长度。...设置轴,设置切片的起始值,重点值和步长 var greenness = coefficients.slice({axis: 0, start: 1, end: 2, step: 1}); print(greenness

    25210

    数据结构:文件管理,算法

    基本物理结构(在存储空间:外存上的组织方式):顺序结构、链接结构、索引结构 2、文件分类 (1)按记录类型: 操作系统文件:连续的字符串集合; 数据库文件:有特定结构(一个数据库内的所有记录结构相同)堆数据记录集合...(2)按记录长度: 定长记录文件:每个记录都有固定的数据项,数据项长度固定。 不定长记录文件 3、文件操作 (1)检索记录:从文件中查找相应记录; (2)插入记录:把给定的记录插入文件的指定位置。...4、VSAM文件 虚拟存取方法,利用虚拟存储器功能,基于B+树的动态索引结构。 由索引集、顺序集和数据集构成。 5、散列文件 又称直接存取文件,类似散列表(哈希表),将记录散列存储到存储介质上。...在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。...划分: 将2^k\times 2^k棋盘分割为4个2^{k-1}\times 2^{k-1}子棋盘(a)所示。特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。

    85820

    python_正则表达式学习

    (\n \r)之外的任何单个或多个字符 >>> match0bj = re.match(r'(.*)are(.*?)....用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用group()或group(0) start([group]) 用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符索引...)默认 0 end([group]) 获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1)默认0 span([group]) 返回(start(group),end(group))...(1)#返回第一个分组匹配成功的子串的索引 (0, 5) >>> m.group(2)#返回第二个分组匹配成功的子串 'world' >>> m.span (2)#返回第二个分组匹配成功的子串的索引...匹配除“\n”之外的任何单个字符,匹配“\n”之内的使用“ [.

    49340

    查找(二)简单清晰的B树、Trie树具体解释

    在散列表中,不是直接把keyword作为数组的下标,而是依据keyword计算出对应的下标。 使用散列的查找算法分为两步。第一步是用散列函数将被查找的键转化为数组的一个索引。...(假设M不是素数,我们可能无法利用键中包括的全部信息,这可能导致我们无法均匀地散列值。) 浮点数 将键表示为二进制数,然后再使用除留余数法。...(让浮点数的各个位都起作用)(Java就是这么做的) 字符串 除留余数法也能够处理较长的键,比如字符串,我们仅仅需将它们当做大整数就可以。即相当于将字符串当做一个N位的R进制值,将它除以M并取余。...开放地址散列表中最简单的方法叫做线性探測法:当碰撞发生时,我们直接检查散列表中的下一个位置(将索引值加1),假设不同则继续查找,直到找到该键或遇到一个空元素。...(而B 树的叶子节点并没有包括所有须要查找的信息) 3、全部的非终端结点能够看成是索引部分,结点中仅含有其子树根结点中最大(或最小)keyword。

    88510

    【愚公系列】2022年01月 Django商城项目03-Redis配置

    GETRANGE key start end 返回 key 中字符串值的子字符 GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)...同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。...name, where, refvalue, value)) 在name对应的列表的某一个值前或后插入一个新值 r.lset(name, index, value) 对name对应的list中的某一个索引位置重新赋值...由于redis类库中没有提供对列表元素的增量迭代,如果想要循环name对应的列表的所有元素,那么就需要: # 1、获取name对应的所有列表 # 2、循环列表 # 但是,如果列表非常大,...那么就有可能在第一步时就将程序的内容撑爆,所有有必要自定义一个增量迭代的功能: def list_iter(name): """ 自定义redis列表增量迭代 :param

    57640

    HarmonyOS 开发实践——List组件的使用与AlphabetIndexer联动实践

    在鸿蒙应用开发中,List组件是一个非常重要的元素,它用于展示一系列数据项,非常适合构建列表界面,例如商品列表、联系人列表、消息列表等,可以轻松高效地显示结构化、可滚动的信息。1....: Scroller})参数说明:space:设置子组件在主轴方向的间隔initialIndex:设置List组件初次加载的索引值scroller:绑定可滚动组件控制器Scroller / ListScroller1.2...end:List显示区域内的最后一个子组件的索引值center:List显示区域内的中间位置的子组件的索引值1.3....: Length} null)设置子元素ListItem分割线样式:-strokeWidth: 分割线的线宽-color: 分割线的颜色,默认值:0x08000000-startMargin: 分割线与列表侧边起始端的距离...例如,在城市选择列表中,可以通过AlphabetIndexer实现首字母快速索引和定位。3.1.

    39420
    领券