AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

除自身以外數組的乘積:三種解法及Java代碼示例

來源: 責編: 時間:2023-12-25 17:28:56 241觀看
導讀在處理數組相關的問題時,有時候需要計算除數組中某個元素以外的所有元素的乘積。這個問題可以通過多種方法解決。本文將首先給出題目的詳細描述,然后介紹三種解法,并提供相應的Java代碼示例。最后,對每種解法進行時間和空

在處理數組相關的問題時,有時候需要計算除數組中某個元素以外的所有元素的乘積。這個問題可以通過多種方法解決。本文將首先給出題目的詳細描述,然后介紹三種解法,并提供相應的Java代碼示例。最后,對每種解法進行時間和空間復雜度的分析,幫助讀者評估解法的效率和性能。Ju928資訊網——每日最新資訊28at.com

Ju928資訊網——每日最新資訊28at.com

題目描述

給定一個整數數組 nums,返回一個數組 output,其中 output[i] 等于除 nums[i] 之外的所有元素的乘積。Ju928資訊網——每日最新資訊28at.com

注意:請不要使用除法,且在 O(n) 時間復雜度內完成此問題的解決。Ju928資訊網——每日最新資訊28at.com

示例:Ju928資訊網——每日最新資訊28at.com

輸入: [1, 2, 3, 4]Ju928資訊網——每日最新資訊28at.com

輸出: [24, 12, 8, 6]Ju928資訊網——每日最新資訊28at.com

解釋: 除了自身以外的乘積為:[2x3x4, 1x3x4, 1x2x4, 1x2x3] = [24, 12, 8, 6]Ju928資訊網——每日最新資訊28at.com

1. 解法一:暴力法

暴力法是最簡單直接的解法,即對于數組中的每個元素,都計算除自身以外的其他元素的乘積。具體步驟如下:Ju928資訊網——每日最新資訊28at.com

public int[] productExceptSelf(int[] nums) {   int n = nums.length;   int[] output = new int[n];      for (int i = 0; i < n; i++) {       int product = 1;       for (int j = 0; j < n; j++) {           if (i != j) {               product *= nums[j];          }      }       output[i] = product;  }      return output;}

時間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 外層循環遍歷數組,時間復雜度為 O(n)。
  • 內層循環遍歷數組,時間復雜度為 O(n)。
  • 總體時間復雜度為 O(n^2)。

空間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 使用了額外的數組 output 來存儲結果,空間復雜度為 O(n)。

2. 解法二:左右乘積列表

解法二利用兩個輔助數組,分別記錄每個元素左側和右側的乘積。具體步驟如下:Ju928資訊網——每日最新資訊28at.com

public int[] productExceptSelf(int[] nums) {   int n = nums.length;   int[] output = new int[n];      int[] leftProducts = new int[n];   int[] rightProducts = new int[n];      leftProducts[0] = 1;   for (int i = 1; i < n; i++) {       leftProducts[i] = leftProducts[i - 1] * nums[i - 1];  }      rightProducts[n - 1] = 1;   for (int i = n - 2; i >= 0; i--) {       rightProducts[i] = rightProducts[i + 1] * nums[i + 1];  }      for (int i = 0; i < n; i++) {       output[i] = leftProducts[i] * rightProducts[i];  }      return output;}

時間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 第一個循環遍歷數組,時間復雜度為 O(n)。
  • 第二個循環遍歷數組,時間復雜度為 O(n)。
  • 第三個循環遍歷數組,時間復雜度為 O(n)。
  • 總體時間復雜度為 O(n)。

空間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 使用了兩個輔助數組來存儲左側和右側的乘積,空間復雜度為 O(n)。

3. 解法三:空間優化

解法三對解法二進行了空間優化,只使用一個輔助數組來記錄左側的乘積,并在計算右側乘積時即時更新結果。具體步驟如下:Ju928資訊網——每日最新資訊28at.com

public int[] productExceptSelf(int[] nums) {   int n = nums.length;   int[] output = new int[n];      output[0] = 1;   for (int i = 1; i < n; i++) {       output[i] = output[i - 1] * nums[i - 1];  }      int rightProduct = 1;   for (int i = n - 1; i >= 0; i--) {       output[i] *= rightProduct;       rightProduct *= nums[i];  }      return output;}

時間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 第一個循環遍歷數組,時間復雜度為 O(n)。
  • 第二個循環遍歷數組,時間復雜度為 O(n)。
  • 總體時間復雜度為 O(n)。

空間復雜度分析:Ju928資訊網——每日最新資訊28at.com

  • 只使用了一個輔助數組來存儲左側的乘積,空間復雜度為 O(n)。

結論

本文介紹了題目"除自身以外數組的乘積"的詳細描述,并給出了三種解法:暴力法、左右乘積列表和空間優化。下面是它們的時間和空間復雜度的總結:Ju928資訊網——每日最新資訊28at.com

解法Ju928資訊網——每日最新資訊28at.com

時間復雜度Ju928資訊網——每日最新資訊28at.com

空間復雜度Ju928資訊網——每日最新資訊28at.com

暴力法Ju928資訊網——每日最新資訊28at.com

O(n^2)Ju928資訊網——每日最新資訊28at.com

O(n)Ju928資訊網——每日最新資訊28at.com

左右乘積列表Ju928資訊網——每日最新資訊28at.com

O(n)Ju928資訊網——每日最新資訊28at.com

O(n)Ju928資訊網——每日最新資訊28at.com

空間優化Ju928資訊網——每日最新資訊28at.com

O(n)Ju928資訊網——每日最新資訊28at.com

O(n)Ju928資訊網——每日最新資訊28at.com

從復雜度分析可以看出,解法二和解法三都能夠在線性時間內完成計算,而且空間復雜度也相對較低。因此,解法二和解法三是更優的解決方案。Ju928資訊網——每日最新資訊28at.com

在實際應用中,根據具體的問題和要求,選擇合適的解法可以提高算法的效率和性能。希望本文能夠幫助讀者理解和掌握解決"除自身以外數組的乘積"問題的不同解法,并在實際編程中得到應用。如果想要了解更多數組相關的問題和解法,建議進一步學習相關的算法和數據結構知識。Ju928資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-54008-0.html除自身以外數組的乘積:三種解法及Java代碼示例

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 10分鐘了解Python黑魔法 Yield、Iterator、Generator

下一篇: jstat,一把Java程序員必備的瑞士軍刀

標簽:
  • 熱門焦點
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 一條抖音4億人圍觀 ! 這家MCN比無憂傳媒還野

    作者:Hiu 來源:互聯網品牌官01 擦邊少女空降熱搜,幕后推手曝光被網友譽為&ldquo;純欲天花板&rdquo;的女網紅井川里予,近期因為一組哥特風照片登上熱搜,引發了一場互聯網世界關于
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的&ldquo;征求意見版&rdquo;:1、取消P序列
  • 郭明錤稱華為和江淮汽車合作開發問界MPV,定價100萬左右、計劃明年量產

    8 月 1 日消息,郭明錤今天在 Medium 平臺發布博文,稱華為正在和江淮汽車合作,開發售價在 100 萬元的問界 MPV,預計在 2024 年第 2 季度量產,銷量目標為
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • OPPO K11搭載高性能石墨散熱系統:旗艦同款 性能涼爽釋放

    日前OPPO官方宣布,將于7月25日14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣點就是將配備索尼
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國時間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內容審核等。此前,T
Top