leetcode_977. 有序數組的平方_java

977. 有序數組的平方https://leetcode.cn/problems/squares-of-a-sorted-array/

1.題目

給你一個按 非遞減順序 排序的整數數組 nums,返回 每個數字的平方 組成的新數組,要求也按 非遞減順序 排序。

    示例 1:

    輸入:nums = [-4,-1,0,3,10]
    輸出:[0,1,9,16,100]
    解釋:平方后,數組變為 [16,1,0,9,100]
    排序后,數組變為 [0,1,9,16,100]

    示例 2:

    輸入:nums = [-7,-3,2,3,11]
    輸出:[4,9,9,49,121]
    

    提示:

    • 1 <= nums.length <= 104
    • -104 <= nums[i] <= 104
    • nums 已按 非遞減順序 排序

    進階:

    • 請你設計時間復雜度為 O(n) 的算法解決本問題

    2.題解

    題解1:

    先把所有的元素平方,然后再使用選擇排序算法進行排序(用其他排序算法也可以)。

    class Solution {public int[] sortedSquares(int[] nums) {int i,j,min,temp;//1、把所有的元素平方for(i=0; i<nums.length; i++) {nums[i] = nums[i] * nums[i];}//選擇排序算法,使元素從小到大排序for(i=0;i<nums.length-1;i++){min=i; // 記錄最小值的位置,第一個元素默認最小for(j=i+1;j<nums.length;j++)if(nums[j]<nums[min]) // 找到目前最小值min=j;  // 記錄最小值的位置if(min!=i) { // 交換兩個變量temp=nums[min];nums[min]=nums[i];nums[i]=temp;}}return nums;        }
    }

    注:選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

    題解2:

    使用Arrays.sort()函數。

    class Solution {public int[] sortedSquares(int[] nums) {for(int i=0; i<nums.length; i++) {nums[i] = nums[i] * nums[i];}Arrays.sort(nums);return nums;        }
    }

    題解3:

    使用雙指針。

    class Solution {public int[] sortedSquares(int[] nums) {// 創建一個與輸入數組相同長度的數組來存儲結果int[] result = new int[nums.length];// 初始化變量 i 為數組的起始位置,j 為數組的結束位置,k 為結果數組的最后一個位置int i, j, k = nums.length - 1;// 使用雙指針法進行比較,i 從數組開頭,j 從數組結尾,k 從結果數組的末尾開始填充for(i = 0, j = nums.length - 1; i <= j; ) {// 比較當前 i 和 j 位置的平方值,較大的平方值放到 result[k] 中if(nums[i] * nums[i] > nums[j] * nums[j]) {// 將 i 位置的平方放入 result[k] 中result[k] = nums[i] * nums[i];// k 遞減,準備填充下一個最大值k--;// i 向右移動,繼續向右處理i++;} else {// 將 j 位置的平方放入 result[k] 中result[k] = nums[j] * nums[j];// k 遞減,準備填充下一個最大值k--;// j 向左移動,繼續向左處理j--;}}// 返回結果數組,它已經按升序排列了return result;}
    }
    

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

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

    相關文章

    Nginx—nginx.conf 配置結構詳解

    一、nginx.conf 配置結構 函數 說明 main 全局配置 event 配置工作模式以及連接數 http http模塊相關配置 server 虛擬主機配置&#xff0c;可以有多個 location 路由規則&#xff0c;表達式 upstream 集群、內網服務器&#xff08;負載均衡也在這里邊配&#xff…

    斐波那契數列----C語言

    關于斐波那契 已知&#xff1a; 問題背景&#xff1a;一對兔子從第3個月開始每月生一對新兔子&#xff0c;新兔子同樣在第3個月開始繁殖。 關鍵觀察&#xff1a; 第1個月&#xff1a;1對&#xff08;初始兔子&#xff09;。 第2個月&#xff1a;1對&#xff08;未成熟&#…

    vulhub靶場—— Tomcat8

    目錄 一、漏洞描述 二、靶場搭建 三、漏洞復現 1、弱密碼 2、文件上傳 一、漏洞描述 環境描述&#xff1a; Tomcat 支持后臺部署 war 文件&#xff0c;可以直接將 webshell 部署到 web 目錄下。tomcat 默認的管理頁面 manager 使用 basic 認證用戶名和密碼登錄&#xff0…

    使用 Spring AI Aliabab Module RAG 構建 Web Search 應用

    使用 Spring AI Alibaba 構建大模型聯網搜索應用 Spring AI 實現了模塊化 RAG 架構&#xff0c;架構的靈感來自于論文“模塊化 RAG&#xff1a;將 RAG 系統轉變為類似樂高的可重構框架”中詳述的模塊化概念。 Spring AI 模塊化 RAG 體系 總體上分為以下幾個步驟&#xff1a; …

    一些練習 C 語言的小游戲

    一些練習 C 語言的小游戲 — 1. 猜數字游戲 描述&#xff1a;程序隨機生成一個數字&#xff0c;玩家需要猜測這個數字&#xff0c;并根據提示&#xff08;太高或太低&#xff09;調整猜測&#xff0c;直到猜中為止。 功能點&#xff1a; 隨機數生成 (rand() 函數)。循環和…

    關于中文編程的一些思考

    隨著信息化與數字化的發展&#xff0c;工業4.0時代亦將徐徐到來。當計算機的普及程度越來越高&#xff0c;數據的產生、傳輸、處理等變得越來越快、越來越大量的時候&#xff0c;人們想要自動化辦公的愿望也越來越強烈&#xff0c;希望能將自身從耗費腦力但是重復繁瑣的工作中解…

    golang 日志log與logrus

    目錄 一、Go 標準庫 log 詳解 1. 功能特點 2. 常用函數 3. 示例代碼 4. 優勢和局限 二、第三方庫 logrus 詳解 1. 功能特點 2. 核心功能 3. 示例代碼 4. 優勢和擴展性 三、總結 1. 何時選擇 log&#xff1f; 2. 何時選擇 logrus&#xff1f; 3. 對比總結 一、Go 標…

    消費品行業創新創業中品類創新與數字化工具的融合:以開源 AI 智能客服、AI 智能名片及 S2B2C 商城小程序為例

    摘要&#xff1a; 本文聚焦于消費品行業的創新與創業&#xff0c;深入探討“選擇大于努力”這一觀點&#xff0c;強調品類選擇在品牌發展中的關鍵作用。同時&#xff0c;詳細分析了品類創新對于新消費品牌崛起以及傳統品牌轉型的重要意義。在此基礎上&#xff0c;引入開源 AI 智…

    Razer macOS v0.4.10快速安裝

    鏈接點這里下載最新的 .dmg 文件。將下載的 .dmg 映像文件拖入 應用程序 文件夾中。若首次打開時出現安全警告【什么扔到廢紙簍】&#xff0c;這時候點擊 Mac 的“系統偏好設置”-> “安全性與隱私”-> “通用”&#xff0c;然后點擊底部的 “打開”。【或者仍然打開】 對…

    Flask項目部署:Flask + uWSGI + Nginx

    目錄 1,網絡架構 2,環境安裝 2.1,安裝yum:Shell軟件包管理器 2.2 安裝python 2.3 安裝uWSGI 2.4 安裝Flask 3,上傳工程包到服務器,打包Flask項目 4,創建和配置 uwsgi 配置文件 uwsgi.ini 4.1配置文件 4.2配置文件注釋詳解 5,啟動服務 6,安裝nginx 7,nginx配置 8,…

    [FPGA基礎學習]實現流水燈與按鍵暫停

    FPGA實現LED流水燈 1.vscode的安裝和使用 vscode下載 Visual Studio Code - Code Editing. Redefined vscode插件&#xff08;Verilog-HDL/SystemVerilog&#xff09;下載 quartus綁定vscode 2.用6個LED完成周期為1秒的跑馬燈效果 流水燈模塊設計 時鐘輸入 DE2-115開發板…

    【TensorRT】TensorRT從安裝到推理——Python 環境下 MobileNetV4 三分類任務

    我想開發一個基于深度學習的分類小軟件&#xff0c;逐漸了解到了TensorRT在模型推理速度上的優勢&#xff0c;經過一下午資料的查找實現了將onnx模型轉為TensorRT格式模型的推理及測試過程。將實現過程記錄下來方便日后查看。 本文實驗設備是MX350顯卡 2G顯存 一 、安裝Tenso…

    1.兩數之和(Java)

    1. 題目描述 LeetCode 1. 兩數之和&#xff08;Two Sum&#xff09; 給定一個整數數組 nums 和一個目標值 target&#xff0c;請你在該數組中找出和為目標值的那兩個整數&#xff0c;并返回它們的索引。 示例 1&#xff1a; 輸入&#xff1a;nums [2,7,11,15], target 9 …

    《深入探索 Python 數據分析:用 Pandas 高效處理與可視化大型數據集》

    《深入探索 Python 數據分析:用 Pandas 高效處理與可視化大型數據集》 引言:從零到分析高手 數據是當代社會最寶貴的資源,而數據分析技能是現代職業人不可或缺的一部分。在數據科學的領域中,Python 已成為當之無愧的“首選語言”,其強大的生態系統和簡潔的語法讓人如虎添…

    將樹莓派5當做Ollama服務器,C#調用generate的API的示例

    其實完全沒這個必要&#xff0c;性能用腳后跟想都會很差。但基于上一篇文章的成果&#xff0c;來都來了就先簡單試試吧。 先來看看這個拼夕夕上五百多塊錢能達到的效果&#xff1a; 只要對速度沒要求&#xff0c;那感覺就還行。 Ollama默認只在本地回環&#xff08;127.0.0…

    python基礎學習二(列表及字典的使用)

    文章目錄 列表列表的創建獲取列表中的多個元素判斷列表中元素是否存在列表元素的添加操作列表元素的刪除操作列表元素的修改列表的排序列表生成式 字典字典的創建字典的常規操作字典的常用操作字典的視圖操作字典元素的遍歷字典的特點字典的生成式 列表 一個對象由id&#xff0…

    Android設計模式之代理模式

    一、定義&#xff1a; 為其他對象提供一種代理以控制對這個對象的訪問。 二、角色組成&#xff1a; Subject抽象主題&#xff1a;聲明真是主題與代理的共同接口方法&#xff0c;可以是一個抽象類或接口。 RealSubject真實主題&#xff1a;定義了代理表示的真實對象&#xff0c…

    國外計算機證書推薦(考證)(6 Sigma、AWS、APICS、IIA、Microsoft、Oracle、PMI、Red Hat)

    文章目錄 證書推薦1. 六西格瑪 (6 Sigma)2. 亞馬遜網絡服務 (AWS)3. 美國生產與庫存控制學會 (APICS)4. 內部審計師協會 (IIA)5. 微軟 (Microsoft)6. 甲骨文 (Oracle)7. 項目管理協會 (PMI)8. 紅帽 (Red Hat) 證書推薦 1. 六西格瑪 (6 Sigma) 介紹&#xff1a;六西格瑪是一種…

    用mkdocs寫文檔#自動更新github-page

    https://wuyisheng.github.io/blog 背景是上一篇博客 使用mkdocs&#xff0c;最后提及可以部署github page。這里說明下怎么自動部署。 當然&#xff0c;這篇博客主要的目的還是提供下github page的鏈接 &#xff1a;&#xff09; 我是這樣做的&#xff1a; step 1: pip3 i…

    QT五 文件系統,QFile,QfileInfo

    總覽 QIODevice&#xff1a;所有 I/O 設備類的父類&#xff0c;提供了字節塊讀寫的通用操作以及基本接口&#xff1b;QFileDevice&#xff1a;Qt5新增加的類&#xff0c;提供了有關文件操作的通用實現。QFlie&#xff1a;訪問本地文件或者嵌入資源&#xff1b;QTemporaryFile&a…