本文將為大家詳細(xì)介紹“如何使用java求除自身以外數(shù)組的乘積”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識(shí)點(diǎn),希望這篇“如何使用java求除自身以外數(shù)組的乘積”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識(shí)吧。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供睢寧縣企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為睢寧縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
給定長度為 n 的整數(shù)數(shù)組 nums,其中 n > 1,返回輸出數(shù)組 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積。
示例:
輸入: 輸出:
答案:
1 public static int[] productExceptSelf(int[] nums) {
2 int n = nums.length;
3 int[] res = new int[n];
4 res[0] = 1;
5 for (int i = 1; i < n; i++) {
6 res[i] = res[i - 1] * nums[i - 1];
7 }
8 int right = 1;
9 for (int i = n - 1; i >= 0; i--) {
10 res[i] *= right;
11 right *= nums[i];
12 }
13 return res;
14 }
解析:
如果每次去掉自己再相乘也能計(jì)算出來,但復(fù)雜度比較大,如果把所有的元素都乘一遍,然后再一個(gè)個(gè)除,也能得到結(jié)果,但有可能會(huì)溢出。上面的方法就比較簡單也很好理解,第一次for循環(huán)之后num[i]表示的是當(dāng)前下標(biāo)為i的元素左邊所有元素的乘積(不包括當(dāng)前元素),第二個(gè)for循環(huán)從右邊計(jì)算,right表示的當(dāng)前元素右邊所有元素的乘積(不包括當(dāng)前元素),所以在第二個(gè)循環(huán)中遍歷到當(dāng)前元素的時(shí)候,用它的左邊所有元素的乘積乘以他右邊所有元素的乘積即可。
Java的特點(diǎn)有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο蟆⒎植际?、安全性、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
感謝您能讀到這里,小編希望您對“如何使用java求除自身以外數(shù)組的乘積”這一關(guān)鍵問題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!