leetcode_238 除自身以外的數組乘積

1. 題意

除了自身外的乘積,題目要求不能用除法做。

2. 題解

不用除法做,那就用前后綴分解的方法做。

時間復雜度O(n)O(n)O(n)

  • 兩個數組記錄前后綴乘積
class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> pre(n);vector<int> suf(n);pre[0] = 1;for (int i = 1; i < n; ++i)pre[i] = nums[i - 1] * pre[i - 1];suf[0] = 1;for (int i = n - 1;i > 0; --i) {suf[n - i] = suf[n - i - 1] * nums[i];}vector<int> ans(n, 1);for (int i = 0;i < n; ++i)ans[i] = pre[i] * suf[n - 1 - i];return ans;}
};

事實上這個兩個數組空間都可以直接優化掉,下面的空間復雜度為O(1)O(1)O(1)

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> ans(n, 1);int pre = 1;for (int i = 1;i < n; ++i) {pre *= nums[i - 1];ans[i] *= pre;}int suf = 1;for (int i = n - 2; ~i; --i) {suf *= nums[i + 1];ans[i] *= suf;}return ans;}
};```

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93979.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93979.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93979.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從0開始玩轉soarm101 下篇

上篇我們從0開始構建了基本的環境&#xff0c;這篇我們繼續后續的標定&#xff0c;遙操作&#xff0c;錄制數據&#xff0c;上傳&#xff0c;訓練。 環境&#xff1a;顯卡技嘉的5060&#xff0c;cpui5-13490f&#xff0c;主板技嘉b760m gaming&#xff0c;雙系統ubuntu2204&am…

學習設計模式《二十三》——橋接模式

一、基礎概念 橋接模式的本質是【分離抽象和實現】。 橋接模式的定義&#xff1a;將抽象部分與它的實現部分分離&#xff0c;使它們都可以獨立地變化。 認識橋接模式序號認識橋接模式說明1什么是橋接通俗點說就是在不同的東西之間搭一個橋&#xff0c;讓它們能夠連接起來&a…

使用Python 創建虛擬環境的兩種方式

使用Python 創建虛擬環境的兩種方式&#xff1a; 方式一&#xff1a;使用官方標準庫 venv (Python 3.3 推薦) 創建&#xff1a; # 語法&#xff1a;python -m venv <虛擬環境名稱> python -m venv my_project_env指定Python解釋器版本&#xff08;如果你的系統有多個Pyth…

Android 開發問題:android:marginTop=“20px“ 屬性不生效

android:marginTop"20px"在 Android 開發中&#xff0c;XML 布局文件中&#xff0c;上述屬性不生效 問題原因 margin 系列的屬性需要加上 layout_ 前綴layout_marginTop&#xff1a;頂部邊距layout_marginBottom&#xff1a;底部邊距layout_marginLeft&#xff1a;左…

【P18 3-10】OpenCV Python—— 鼠標控制,鼠標回調函數(鼠標移動、按下、。。。),鼠標繪制基本圖形(直線、圓、矩形)

P18 3-10 1 鼠標回調函數2 鼠標繪制基本圖形&#xff08;直線、圓、矩形&#xff09;2.1 圖形繪制教程2.2 鼠標繪制基本圖形&#xff08;直線、圓、矩形&#xff09;代碼實現1 鼠標回調函數 import cv2 import numpy as npdef mouse_callback(event,x,y,flage,userdata):print(…

微服務如何集成swagger3

文章目錄引言一、項目結構二、頂級pom依賴準備三、common-swagger模塊四、gateway模塊配置五、結果演示引言 我們在用springboot開發應用時&#xff0c;經常使用swagger來作為我們的接口文檔可視化工具&#xff0c;方便前端同事調用&#xff0c;集成也是比較簡單的&#xff0c…

特種行業許可證識別技術:通過圖像處理、OCR和結構化提取,實現高效、準確的許可證核驗與管理

在酒店、娛樂場所、典當行、危化品經營等特種行業管理中&#xff0c;許可證是合法經營的“生命線”。傳統人工核驗方式效率低下、易出錯&#xff0c;且難以應對海量數據和復雜偽造手段。特種行業許可證識別技術應運而生&#xff0c;成為智慧監管和優化服務的關鍵工具。特種行業…

零售行業新店網絡零接觸部署場景下,如何選擇SDWAN

一家連鎖超市在新疆偏遠地區的新店開業申請網絡專線&#xff0c;市政審批和架設電線桿的流程花了半個月&#xff0c;成本高企——而它的競爭對手在隔壁新店部署SD-WAN&#xff0c;從開箱到業務上線僅用了10分鐘。近年來&#xff0c;零售企業瘋狂擴張與下沉市場的趨勢愈演愈烈。…

python發布文章和同步文章到社區的工具小腳本

在開發過程中&#xff0c;開發者們往往需要頻繁地在社區中分享文章、解決方案以及技術文章來交流與成長。為了簡化這一過程&#xff0c;我將為你們介紹兩個基于Python腳本的自動化工具&#xff0c;可以幫助你發布文章到開發者社區&#xff0c;提高效率。一、從Markdown文件批量…

23.CNN系列網絡思考

為什么是卷積、池化的交替進行? 卷積做的是特征提取,池化做的是一種降采樣。 早期學習的主要是:低級特征(邊緣、角點、紋理、顏色)。這些特征分布相對局部且空間位置信息很重要。 卷積將這些特征學習出來,然后通過池化降采樣,突出其位置信息。然后再卷積進行學習池化后…

MySQL 8.x的性能優化文檔整理

一、內存與緩沖優化 # InnoDB緩沖池&#xff08;內存的60%-80%&#xff09; innodb_buffer_pool_size 12G # 核心參數 innodb_buffer_pool_instances 8 # 8核CPU建議分8個實例# 日志緩沖區與Redo日志 innodb_log_buffer_size 256M # 事務日志緩沖區 innodb_log_…

個人使用AI開發的《PlSqlRewrite4GaussDB(PLSQL自動轉換工具)1.0.1 BETA》發布

個人使用AI開發的《PlSqlRewrite4GaussDB(PLSQL自動轉換工具)1.0.1 BETA》發布 前言 基于語法樹的SQL自動改寫工具開發系列&#xff08;1&#xff09;-離線安裝語法樹解析工具antlr4 基于語法樹的SQL自動改寫工具開發系列&#xff08;2&#xff09;-使用PYTHON進行簡單SQL改寫…

python的校園研招網系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 摘要&…

如何高效撰寫AI領域學術論文——學習筆記

最開始寫的時候最好仿照著頂會來寫1. 標題(Title)?標題是論文的"門面"&#xff0c;需要同時具備簡潔性和信息量&#xff1a;采用"XX方法 for XXX任務"的標準格式&#xff0c;包含核心創新點和應用領域&#xff0c;避免使用模糊詞匯&#xff0c;力求精準&a…

elasticsearch8.12.0安裝分詞

上篇說到&#xff0c;安裝了es后正常運行es分詞下載地址從 GitHub Release 下載&#xff08;推薦&#xff09; &#x1f449; https://github.com/medcl/elasticsearch-analysis-ik/releases或https://release.infinilabs.com/analysis-ik/stable/安裝&#xff1a;選擇與你 ES …

強化學習算法分類與介紹(含權重更新公式)

強化學習算法種類豐富&#xff0c;可按學習目標&#xff08;基于價值 / 基于策略 / 演員 - 評論家&#xff09;、數據使用方式&#xff08;在線 / 離線&#xff09;、是否依賴環境模型&#xff08;無模型 / 有模型&#xff09;等維度分類。以下按核心邏輯梳理常見算法&#xff…

基于STM32F103單片機智能門禁熱釋人體感應報警設計

1 系統功能介紹 本設計基于 STM32F103C8T6 單片機&#xff0c;通過多種傳感器、執行器以及通信模塊實現智能門禁和安防報警功能。其主要功能是檢測門外人員情況&#xff0c;結合環境光照強度判斷是否需要照明&#xff0c;同時結合 GSM 模塊在異常情況下發送報警信息&#xff0c…

imx6ull-驅動開發篇33——platform 平臺驅動模型

目錄 Linux 驅動的分離與分層 驅動的分隔與分離 驅動的分層 platform 平臺驅動模型 platform 總線 bus_type 結構體 platform 總線 platform_match函數 platform 驅動 platform_driver 結構體 device_driver 結構體 platform_driver_register 函數 platform_drive…

Win/Linux筆記本合蓋不睡眠設置指南

在 筆記本電腦上&#xff0c;當你合上屏幕時&#xff0c;默認系統可能會進入“睡眠”或“休眠”狀態。如果你希望合上屏幕時系統繼續正常運行&#xff08;例如后臺下載、運行程序、遠程訪問等&#xff09;&#xff0c;需要修改系統的電源設置。 一、以下是 Windows 10 / Windo…

(棧)Leetcode155最小棧+739每日溫度

739. 每日溫度 - 力扣&#xff08;LeetCode&#xff09; while要把stack的判斷放在前面&#xff0c;否則stack[-1]可能報錯 class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]""…