摘要:題目描述給定一個(gè)數(shù)組請(qǐng)構(gòu)建一個(gè)數(shù)組其中中的元素。思路代碼注意特殊設(shè)置數(shù)組和的初始值需要注意的就是兩個(gè)循環(huán)的邊界條件
題目描述
給定一個(gè)數(shù)組A[0,1,...,n-1],請(qǐng)構(gòu)建一個(gè)數(shù)組B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]。不能使用除法。
思路 代碼import Strategy.Strategy; import java.lang.reflect.Array; import java.util.Arrays; public class MultiArr { public static void main(String[] args){ MultiArr multiArr = new MultiArr(); int[] a = {1, 2, 3,4,5}; // int[] a = {1,2}; /*int[] a = {1, 2, 3,4,5,6}; int[] a = {1, 2, 3,4,5,6};*/ int[] multiply = multiArr.multiply(a); System.out.println(Arrays.toString(multiply)); } public int[] multiply(int[] A) { //注意特殊case if(A.length == 0 || A == null)return A; if(A.length == 1) return A; int len = A.length; int[] B = new int[len]; int[] C = new int[len]; //設(shè)置數(shù)組C和D的初始值 C[0] = 1; C[1] = A[0]; int[] D = new int[len]; D[len - 1] = 1; D[len - 2] = A[len - 1]; //需要注意的就是兩個(gè)for循環(huán)的邊界條件 for(int i = 1; i < len - 1; i++){ C[i + 1] = C[i ] * A[i]; } for(int i = len - 2; i >= 0; i--){ D[i] = D[i+1] * A[i+1]; } for(int i = 0; i < len; i++){ B[i] = C[i] * D[i]; } return B; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74955.html
摘要:動(dòng)態(tài)規(guī)劃復(fù)雜度時(shí)間空間思路分析出自身以外數(shù)組乘積的性質(zhì),它實(shí)際上是自己左邊左右數(shù)的乘積,乘上自己右邊所有數(shù)的乘積。所以我們可以用一個(gè)數(shù)組來(lái)表示第個(gè)數(shù)字前面數(shù)的乘積,這樣。同理,我們可以反向遍歷一遍生成另一個(gè)數(shù)組。 Product of Array Except Self Given an array of n integers where n > 1, nums, return an...
摘要:題目乘積最大子序列給定一個(gè)整數(shù)數(shù)組,找出一個(gè)序列中乘積最大的連續(xù)子序列該序列至少包含一個(gè)數(shù)。示例輸入輸出解釋結(jié)果不能為因?yàn)椴皇亲訑?shù)組。當(dāng)大于時(shí)如果,,如果,,時(shí)間復(fù)雜度和空間復(fù)雜度均為,其中是數(shù)組中的元素個(gè)數(shù)。動(dòng)態(tài)規(guī)劃法參考自 題目 乘積最大子序列 給定一個(gè)整數(shù)數(shù)組 nums ,找出一個(gè)序列中乘積最大的連續(xù)子序列(該序列至少包含一個(gè)數(shù))。 示例 1: 輸入: [2,3,-2,4]輸出:...
摘要:題目要求從一個(gè)整數(shù)數(shù)組中找到一個(gè)子數(shù)組,該子數(shù)組中的所有元素的乘積最大。比如數(shù)組的最大乘積子數(shù)組為思路與代碼這題目考察了動(dòng)態(tài)編程的思想。至于為什么還要比較,是因?yàn)槿绻且粋€(gè)負(fù)數(shù)的,那么之前的最小乘積在這里可能就成為了最大的乘積了。 題目要求 Find the contiguous subarray within an array (containing at least one num...
閱讀 3160·2021-11-19 09:40
閱讀 3647·2021-11-16 11:52
閱讀 2980·2021-11-11 16:55
閱讀 3171·2019-08-30 15:55
閱讀 1177·2019-08-30 13:08
閱讀 1656·2019-08-29 17:03
閱讀 3012·2019-08-29 16:19
閱讀 2579·2019-08-29 13:43