LeetCode(977):有序數組的平方

有序數組的平方

題目鏈接

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

//暴力 
#include<stdio.h>
void sort(int *nums,int n){for(int i=0;i<n;i++)for(int j=i+1;j<n;j++){if(nums[i]>nums[j]){int temp=nums[i];nums[i]=nums[j];nums[j]=temp;}}
}int main(){int nums[]={-4,-1,0,3,10};int n=sizeof(nums)/sizeof(nums[0]);for(int i=0;i<n;i++)nums[i]=nums[i]*nums[i];sort(nums,n);for(int i=0;i<n;i++)printf("%d ",nums[i]);
} 

聰明方法:雙指針

數組其實是有序的,只不過負數平方之后可能成為最大數了。那么數組平方的最大值就在數組的兩端,不可能是中間。此時可以考慮雙指針,分別指向頭和尾。

并且此題沒規定空間復雜度,故可以新建一個數組。

//雙指針
//學會這個思想的變化
#include<stdio.h>
int main(){int nums[]={-11,-2,3,4,5,6,7};int n=sizeof(nums)/sizeof(nums[0]);int result[n];//構建一個新數組int k=n-1;//作為新數組的索引//***由于原數組兩邊的平方比中間大,并且大的要在新數組后面,故初始值為n-1 for(int i=0,j=n-1;i<=j;){ //定義兩個指向頭和尾的索引;注意:i<=j,因為最后還有一個元素要加進去 if(nums[i]*nums[i]<nums[j]*nums[j]){result[k--]=nums[j]*nums[j];j--;} else{result[k--]=nums[i]*nums[i];i++;}}for(int i=0;i<n;i++)printf("%d ",result[i]);
} 

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

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

相關文章

OpenAI的“噩夢”,DeepSeek V3-0324效率革命展現中國AI雄心

3月24日晚&#xff0c;DeepSeek低調發布其V3模型的小版本更新——DeepSeek V3-0324&#xff0c;這一操作立即在社區引發熱議。據悉&#xff0c;該版本已集成至DeepSeek官網、應用程序和小程序&#xff0c;用戶只需關閉“Deep Thinking”功能即可體驗。另該模型已在Hugging Face…

mysql創建庫表插入數據演示

show databases; use zzj; create table stu (sid int primary key,name varchar(10) not null,sex varchar(2) );desc stu;insert into stu (sid, name, sex) values (1, zzj, 男);select * from stu; desc stu: select * from stu:

C語言 - 整數與浮點數運算的類型轉換規則

C 語言整數與浮點數運算的類型轉換規則 在 C 語言中&#xff0c;不同數據類型在運算時會進行 隱式類型轉換。當 有符號整數&#xff08;int&#xff09;、無符號整數&#xff08;unsigned int&#xff09; 和 浮點型&#xff08;float、double&#xff09; 進行運算時&#xf…

用SVG繞過瀏覽器XSS審計

[Translated From]&#xff1a;http://insert-script.blogspot.com/2014/02/svg-fun-time-firefox-svg-vector.html SVG - <use> element SVG中的<use>元素用于重用其他元素&#xff0c;主要用于聯接<defs>和alike&#xff0c;而我們卻用它來引用外部SVG文件…

【構建CV圖像識別系統】從傳統方法到深度學習

目錄 1. 圖像的基本概念1.1 像素與色彩1.2 過濾與卷積 2. 圖像分類與檢測3. 圖像特征的提取3.1 全局特征3.2 局部特征3.2.1 邊緣&#xff08;Edge&#xff09;3.2.2 角點&#xff08;Corner&#xff09;3.2.3 SIFT 特征 4. 傳統方法與深度學習在圖像識別中的應用4.1 基于傳統方…

Kubernetes高級應用之-重啟策略

一、介紹&#xff0b;擴展應用&#xff08;涉及的高級資源在后續會寫出來&#xff09; # Kubernetes Pod重啟策略&#xff08;RestartPolicy&#xff09;全面解析 ## 一、重啟策略的核心價值與重要性 在Kubernetes集群中&#xff0c;Pod重啟策略&#xff08;RestartPolicy&a…

簡記_單片機硬件最小系統設計

以STM32為例&#xff1a; 一、電源 1.1、數字電源 IO電源&#xff1a;VDD、VSS&#xff1a;1.8~3.6V&#xff0c;常用3.3V&#xff0c;去耦電容1 x 10u N x 100n &#xff1b; 內核電源&#xff1a;內嵌的穩壓器輸出&#xff1a;1.2V&#xff0c;給內核、存儲器、數字外設…

matlab使用fmincon開加速

在使用 fmincon 進行優化時&#xff0c;可以通過以下方法加速優化過程。這些方法主要涉及算法選擇、并行計算、減少函數調用次數等。以下是具體建議和實現方式&#xff1a; 1. 選擇合適的優化算法 fmincon 支持多種優化算法&#xff0c;不同的算法適用于不同類型的優化問題。選…

MySQL顛覆版系列————MySQL新特性(開啟數據庫的新紀元)下篇

文章目錄 前言五、持久化全局變量5.1 持久化全局變量特點5.2 持久化全局變量實例5.3 持久化全局變量注意事項 六、降序索引&#xff08;Descending Indexes&#xff09;6.1 降序索引&#xff08;Descending Indexes&#xff09;特點6.2 降序索引&#xff08;Descending Indexes…

解析1688.item_search_shop接口:獲取店鋪所有商品返回數據詳細說明

一、引言 在電商領域&#xff0c;獲取特定店鋪的所有商品信息是運營分析、市場調研和自動化處理的重要基礎。1688作為國內領先的B2B電商平臺&#xff0c;提供了豐富的API接口供開發者使用。其中&#xff0c;item_search_shop接口允許開發者通過店鋪ID獲取該店鋪的所有商品信息…

新書速覽|OpenCV計算機視覺開發實踐:基于Python

《OpenCV計算機視覺開發實踐:基于Python》 本書內容 OpenCV是一個跨平臺計算機視覺和機器學習軟件庫&#xff0c;也是計算機視覺領域的開發人員必須掌握的技術。《OpenCV計算機視覺開發實踐:基于Python》基于Python 3.8全面系統地介紹OpenCV 4.10的使用&#xff0c;并配套示例…

微服務架構中的服務發現與 Consul 實踐

在微服務架構中&#xff0c;服務之間的通信是核心問題之一。隨著服務數量的增長&#xff0c;如何高效地管理和定位服務實例變得尤為重要。本文將介紹服務發現的基本概念&#xff0c;并詳細講解如何使用 Consul 進行服務注冊、發現和健康檢查。 1. 什么是服務發現&#xff1f; …

PyTorch 深度學習實戰(24):分層強化學習(HRL)

一、分層強化學習原理 1. 分層學習核心思想 分層強化學習&#xff08;Hierarchical Reinforcement Learning, HRL&#xff09;通過時間抽象和任務分解解決復雜長程任務。核心思想是&#xff1a; 對比維度傳統強化學習分層強化學習策略結構單一策略直接輸出動作高層策略選擇選…

車載網絡測試實操源碼_使用CAPL腳本進行UDS刷寫及其自動化測試

系列文章目錄 使用CAPL腳本解析hex、S19、vbf文件 使用CAPL腳本對CAN報文的Counter、CRC、周期、錯誤幀進行實時監控 使用CAPL腳本模擬發送符合協議要求(Counter和CRC)的CAN報文 使用CAPL腳本控制繼電器實現CAN線、電源線的通斷 使用CAPL腳本實現安全訪問解鎖 使用CAPL腳本實現…

Spring Boot整合Spring Data JPA

Spring Data作為Spring全家桶中重要的一員&#xff0c;在Spring項目全球使用市場份額排名中多次居前位&#xff0c;而在Spring Data子項目的使用份額排名中&#xff0c;Spring Data JPA也一直名列前茅。Spring Boot為Spring Data JPA提供了啟動器&#xff0c;使Spring Data JPA…

JS 應用WebPack 打包器第三方庫 JQuery安裝使用安全檢測

# 打包器 -WebPack- 使用 & 安全 參考&#xff1a; https://mp.weixin.qq.com/s/J3bpy-SsCnQ1lBov1L98WA Webpack 是一個模塊打包器。在 Webpack 中會將前端的所有資源文件都作為模塊處理。 它將根據模塊的依賴關系進行分析&#xff0c;生成對應的資源。 五個核心概…

Oracle歸檔配置及檢查

配置歸檔位置到 USE_DB_RECOVERY_FILE_DEST&#xff0c;并設置存儲大小 startup mount; !mkdir /db/archivelog ALTER SYSTEM SET db_recovery_file_dest_size100G SCOPEBOTH; ALTER SYSTEM SET db_recovery_file_dest/db/archivelog SCOPEBOTH; ALTER SYSTEM SET log_archive…

Four.meme是什么,一篇文章讀懂

一、什么是Four.meme&#xff1f; Four.meme 是一個運行在 BNB 鏈的去中心化平臺旨在為 meme 代幣供公平啟動服務。它允許用戶以極低的成本創建和推出 meme 代幣&#xff0c;無需預售或團隊分配&#xff0c;它消除了傳統的預售、種子輪和團隊分配&#xff0c;確保所有參與者有…

Simula語言的正則表達式

Simula語言中的正則表達式 引言 Simula是一種開創性的編程語言&#xff0c;最初在1960年代由Ole-Johan Dahl和Kristen Nygaard在挪威的計算機中心開發。它不僅是面向對象編程的先驅&#xff0c;還在模擬和各種計算領域有顯著的應用。然而&#xff0c;Simula語言本身并不直接支…

Java 集合 List、Set、Map 區別與應用

一、核心特性對比 二、底層實現與典型差異 ?List? ?ArrayList?&#xff1a;動態數組結構&#xff0c;隨機訪問快&#xff08;O(1)&#xff09;&#xff0c;中間插入/刪除效率低&#xff08;O(n)&#xff09;??LinkedList?&#xff1a;雙向鏈表結構&#xff0c;頭尾操作…