力扣hot100-普通數組2

文章目錄

    • 題目:輪轉數組
      • 方法1-使用額外的數組
      • 方法2-三次反轉數組
    • 除自身以外數組的乘積
      • 方法1-用到了除法
      • 方法2-前后綴乘積法

題目:輪轉數組

原題鏈接:輪轉數組
在這里插入圖片描述

方法1-使用額外的數組

方法1是自己寫出來的。方法2參考的別人的,方法2太👍了,不易發現這個規律

    public static void rotate(int[] nums, int k) {int[] temp = new int[nums.length];int j = 0;k = k % nums.length; // 數組長度大于k時,旋轉次數取余---關鍵for (int i = nums.length - k; i < nums.length; i++) {temp[j++] = nums[i];}for (int i = 0; i < nums.length - k; i++) {temp[j++] = nums[i];}System.arraycopy(temp, 0, nums, 0, nums.length);}

方法2-三次反轉數組

    private static void reverse(int[] nums, int start, int end) {while (start < end) {int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start++;end--;}}public static void rotate1(int[] nums, int k) {k = k % nums.length;  reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}

除自身以外數組的乘積

原題鏈接:除自身以外數組的乘積
在這里插入圖片描述

方法1-用到了除法

當時沒看題目中不讓用除法,當時一下就想到這個思路了,哈哈哈

    public static int[] productExceptSelf(int[] nums) {int temp = 1;int zero = 0;// 先看數組中0的個數  大于1則結果數組全為0  等于1則結果數組中0的位置為其他元素乘積for (int num : nums) {if (num != 0) {temp *= num;} else {zero++;if (zero > 1) return new int[nums.length];}}List<Integer> res = new ArrayList<>();for (int num : nums) {if (zero == 1) {//num==0 則當前結果數組該位置的結果為其他元素乘積res.add(num == 0 ? temp : 0);} else {res.add(temp / num);}}return res.stream().mapToInt(Integer::intValue).toArray();}

方法2-前后綴乘積法

方法2使用兩次遍歷分別計算數組元素左邊右邊的乘積,從而構建出結果數組

    public static int[] productExceptSelf1(int[] nums) {int n = nums.length;int[] res = new int[n];// 第一次遍歷,計算左邊所有元素的乘積res[0] = 1;for (int i = 1; i < n; i++) {res[i] = res[i - 1] * nums[i - 1];}// 第二次遍歷,計算右邊所有元素的乘積,并更新結果數組int right = 1;for (int i = n - 1; i >= 0; i--) {res[i] *= right; //res[i]是當前i左邊元素全部乘積right *= nums[i]; //用一個變量記錄當前元素右邊的所有元素乘積}return res;}

?覺得有用的可以留個關注ya~?

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

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

相關文章

通配符和正則表達式之間的關系

通配符和正則表達式&#xff08;正則&#xff09;都是用于匹配字符串的工具&#xff0c;但它們的復雜性和用途有所不同。下面是它們之間的主要關系和區別&#xff1a; 通配符 通配符主要用于簡單的模式匹配&#xff0c;常見于文件系統操作中&#xff0c;例如在命令行中查找文…

AttackGen:一款基于LLM的網絡安全事件響應測試工具

關于AttackGen AttackGen是一款功能強大的網絡安全事件響應測試工具&#xff0c;該工具利用了大語言模型和MITRE ATT&CK框架的強大功能&#xff0c;并且能夠根據研究人員選擇的威脅行為組織以及自己組織的詳細信息生成定制化的事件響應場景。 功能介紹 1、根據所選的威脅行…

【MindSpore學習打卡】應用實踐-計算機視覺-FCN圖像語義分割-基于MindSpore實現FCN-8s進行圖像語義分割的教程

圖像語義分割是計算機視覺領域中的一個重要任務&#xff0c;它旨在對圖像中的每個像素進行分類&#xff0c;從而實現對圖像內容的詳細理解。在眾多圖像語義分割算法中&#xff0c;全卷積網絡&#xff08;Fully Convolutional Networks, FCN&#xff09;因其端到端的訓練方式和高…

7.7、指針和函數

代碼 #include <iostream> using namespace std;//實現兩個數字進行交換 void swap01(int a, int b) {int temp a;a b;b temp;cout << "swap01a " << a << endl;cout << "swap01b " << b << endl; }void sw…

08 docker Registry搭建docker私倉

目錄 本地鏡像發布流程 1. docker pull registry 下載鏡像 2. docker run 運行私有庫registry 3. docker commit 構建鏡像 4. docker tag 修改新鏡像&#xff0c;使之符合私服規范tag 5. 修改配置文件使之支持http 6. curl驗證私服庫上有什么鏡像 7. push推送 pull拉取 …

Activity、Window、DecorView的關系

目錄 一、Activity、Window、DecorView的層級關系如下圖所示&#xff1a; 1、Activity 2、Window 3、DecorView 二、DecorView初始化相關源碼 三、DecorView顯示時機 前言&#xff1a; 不同的Android版本有差異&#xff0c;以下基于Android 11進行講解。 一、Activi…

Halide AOT模式

這種模式會提前&#xff0c;會提前編譯好&#xff0c;變成dll什么的&#xff0c;可接受任何輸入的參數運行。 然后這樣調用&#xff0c;必須要make一下前一個file&#xff0c;才有后面的.h

魔行觀察-AI數據分析-蜜雪冰城

摘要 本報告旨在評估蜜雪冰城品牌作為投資對象的潛力和價值&#xff0c;基于其經營模式、門店分布、人均消費、覆蓋省份等關鍵指標進行分析。 數據數據源&#xff1a;魔行觀察&#xff1a;http://www.wmomo.com/#/brand/brandDetails?code10013603 品牌概覽 蜜雪冰城是中國…

拼多多職位數據信息采集

數據信息采集 洛哥爬蟲【視頻】 愛寫爬蟲 我愛扣腳 https://careers.pinduoduo.com/jobs#/from DrissionPage import ChromiumPage, ChromiumOptions def fetch_pinduoduo_jobs():# 創建ChromiumOptions對象co ChromiumOptions()# 提供瀏覽器可執行文件的路徑path rC:\Pro…

Vue 爬坑

都是基于最新的Vue3版本 "vue": "^3.4.29" 1 vue組建樣式設置 <script setup lang"ts"> import HelloWorld from ./components/HelloWorld.vue </script><template><div><a href"https://vitejs.dev" tar…

RPA 第一課

RPA 是 Robotic Process Automation 的簡稱&#xff0c;意思是「機器人流程自動化」。 顧名思義&#xff0c;它是一種以機器人&#xff08;軟件&#xff09;來替代人&#xff0c;實現重復工作自動化的工具。 首先要說一句&#xff0c;RPA 不是 ChatGPT 出來之后的產物&#x…

Ubuntu24.04安裝Skynet環境

安裝依賴 sudo apt-get -y install gcc sudo apt-get -y install g sudo apt-get -y install make sudo apt-get install -y autoconf automake libtool sudo apt-get install -y git 或者可以用&#xff1a; sudo apt-get -y install gcc g make autoconf automake libtool…

升級springboot3

坑爹的發版流水線&#xff0c;管天管地&#xff0c;springboot2過了維護期&#xff0c;就催著我們升級。 導致必須上jdk17 記錄一下升級需要處理的事情 先升級springboot和cloud&#xff0c;這里定下基調&#xff0c;其他的才好跟著升級 https://spring.io/projects/spring-b…

如何在Java中使用正則表達式

如何在Java中使用正則表達式 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 正則表達式&#xff08;Regular Expression&#xff0c;簡稱Regex或RegExp&#…

elementui中@click短時間內多次觸發,@click重復點擊,做不允許重復點擊處理

click快速點擊&#xff0c;發生多次觸發 2.代碼示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">確 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按鈕 */sub…

分布式鎖——基于Redis分布式鎖

單機鎖 服務器只有一個&#xff0c;JVM只有一個。 用synchronized加鎖&#xff0c;對lock對象加鎖&#xff0c;只有線程1結束&#xff0c;線程2,3才會開始。 再用uid避免一個線程多次進來。 分布式鎖 真正上線時&#xff1a; 【注&#xff1a;這些服務器連接的是一個Redis集…

STM32入門筆記(03): ADC(SPL庫函數版)(2)

A/D轉換的常用技術有逐次逼近式、雙積分式、并行式和跟蹤比較式等。目前用的較多的是前3種。 A/D轉換器的主要技術指標 轉換時間 分辨率 例如&#xff0c;8位A/D轉換器的數字輸出量的變化范圍為0&#xff5e;255&#xff0c;當輸入電壓的滿刻度為5V時&#xff0c;數字量每變化…

如何學好自動化測試

1. 什么是自動化測試 自動化測試是使用腳本和工具來執行測試任務&#xff0c;以替代手工測試過程。它可以提高效率、減少人工錯誤&#xff0c;并增加測試覆蓋率。在軟件開發過程中&#xff0c;自動化測試已經成為了不可或缺的一部分。 自動化測試主要有以下好處&#xff1a; …

Amos結構方程模型---探索性分析

初級 第5講 探索性分析_嗶哩嗶哩_bilibili amos中基本操作&#xff1a; 橢圓潛變量&#xff0c;不可預測 數據導入 改變形狀 判定系數 方差估計和假設檢驗&#xff1a; 探索性分析&#xff1a; ses&#xff08;潛變量&#xff09;社會經濟指數 從考慮最大的MI開始&#xff0c;卡…

【Python畫圖-馴化seaborn】一文搞懂seaborn中的箱線圖實踐技巧

【Python畫圖-馴化seaborn】一文搞懂seaborn中的箱線圖實踐技巧 本次修煉方法請往下查看 &#x1f308; 歡迎蒞臨我的個人主頁 &#x1f448;這里是我工作、學習、實踐 IT領域、真誠分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免費獲取相關內容文檔關注&a…