2951. 找出峰值

找出數組中的峰值

給你一個下標從 0 開始的數組 mountain 。你的任務是找出數組 mountain 中的所有 峰值

以數組形式返回給定數組中 峰值 的下標,順序不限 。

注意

  • 峰值 是指一個嚴格大于其相鄰元素的元素。
  • 數組的第一個和最后一個元素 是峰值。

示例 1

輸入mountain = [2,4,4]
輸出[]
解釋mountain[0]mountain[2] 不可能是峰值,因為它們是數組的第一個和最后一個元素。mountain[1] 也不可能是峰值,因為它不嚴格大于 mountain[2]。因此,答案為 []

示例 2

輸入mountain = [1,4,3,8,5]
輸出[1,3]
解釋mountain[0]mountain[4] 不可能是峰值,因為它們是數組的第一個和最后一個元素。mountain[2] 也不可能是峰值,因為它不嚴格大于 mountain[3]mountain[1]。但是 mountain[1]mountain[3] 嚴格大于它們的相鄰元素。因此,答案是 [1,3]

提示

  • 3 <= mountain.length <= 100
  • 1 <= mountain[i] <= 100

代碼

int* findPeaks(int* mountain, int mountainSize, int* returnSize) {int* res = (int*)malloc(sizeof(int) * (mountainSize - 2));*returnSize = 0;for (int i = 1; i < mountainSize - 1; i++){if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1]){res[(*returnSize)] = i;(*returnSize)++;}}return res;
}

代碼分析

  1. 函數參數

    • int* mountain: 指向表示山脈的數組的指針。
    • int mountainSize: 數組的大小。
    • int* returnSize: 返回結果數組的大小。
  2. 變量初始化

    • int* res = (int*)malloc(sizeof(int) * (mountainSize - 2)): 為存儲峰值下標的結果數組分配內存。結果數組的大小不會超過 mountainSize - 2
    • *returnSize = 0: 初始化返回結果數組的大小為 0。
  3. 遍歷數組

    • for (int i = 1; i < mountainSize - 1; i++): 從數組的第二個元素遍歷到倒數第二個元素。
  4. 檢查峰值條件

    • if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1]): 如果當前元素嚴格大于其相鄰元素,則將其下標存入結果數組,并增加返回結果數組的大小。
  5. 返回結果

    • return res: 返回存儲峰值下標的結果數組。

復雜度分析

  • 時間復雜度:O(n)

    • 該算法僅需遍歷一次數組,因此時間復雜度為 O(n),其中 n 是數組 mountain 的長度。
  • 空間復雜度:O(n)

    • 該算法使用了一個額外的數組來存儲峰值下標,因此空間復雜度為 O(n),其中 n 是數組 mountain 的長度。

結果

結果

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

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

相關文章

Nginx的Sub模塊

Nginx 是一款高性能的 Web 服務器和反向代理服務器,其靈活的模塊化設計使其成為許多開發者和運維人員的首選。其中,Sub 模塊作為 Nginx 的一部分,提供了強大的字符串替換和正則匹配功能,本文將深入探討 Sub 模塊的用途、示例以及使用中需要注意的事項。 1. Sub 模塊的用途…

汽車合面合殼密封UV膠固化后一般可以耐多少度的高溫和低溫? 汽車車燈的燈罩如果破損破裂破洞了要怎么修復?

汽車合面合殼密封UV膠固化后一般可以耐多少度的高溫和低溫? UV膠固化后的耐高溫和低溫能力取決于具體的UV膠水品牌和型號&#xff0c;以及固化過程中的條件。一般來說&#xff0c;高品質的UV膠水在固化后可以提供較好的耐溫性能&#xff0c;但確切的耐溫范圍需要參考各個廠家提…

Mac 安裝 PostgreSQL簡易教程

Mac 安裝 PostgreSQL簡易教程 下載安裝包 下載安裝包 下載地址 我下載的文件&#xff1a;Postgres-2.7.3-16.dmg 雙擊 dmg 文件安裝 拖拽圖標到右邊的文件&#xff0c;然后到應用程序中找到 Postgres.app 雙擊打開。 然后點擊 Initialize 按鈕 配置$PATH 到命令下工具&#…

C++中的類型轉化的定義與使用

文章目錄 前言一、C中類型轉化的使用與細節二、C語言與C中類型轉化的對比總結 前言 在C中&#xff0c;類型轉換指的是將一個數據類型的值轉換為另一種數據類型的值的操作。C提供了幾種類型轉換操作符&#xff0c;包括靜態轉換、動態轉換和重解釋轉換。下面是關于C中類型轉換的…

ITSS運維資質認證的含金量

什么是ITSS運維資質認證 ITSS運維資質認證是指經過機構評估和審核&#xff0c;對從事IT運維工作的人員進行能力認證和身份確認的過程。認證通過的個人或機構&#xff0c;被視為具備一定的技術水平和專業素養&#xff0c;能夠在IT運維領域提供高質量的服務。ITSS運維資質認證是評…

虛擬化技術 分布式資源調度

一、實驗內容 實現分布式資源調度 二、實驗主要儀器設備及材料 安裝有64位Windows操作系統的臺式電腦或筆記本電腦&#xff0c;建議4C8G或以上配置已安裝VMware Workstation Pro已安裝Windows Server 2008 R2 x64已安裝vCenter Server 三、實驗步驟 將主機esxi1和esxi2加入…

深圳比創達EMC|EMI電磁干擾行業:行業發展的關鍵與挑戰

在當今的高科技時代&#xff0c;電子產品無處不在&#xff0c;它們為我們的生活帶來了極大的便利。然而&#xff0c;隨著電子設備的普及和集成度的提高&#xff0c;電磁干擾&#xff08;EMI&#xff09;問題也日益凸顯。 一、EMI電磁干擾行業&#xff1a;無處不在的挑戰 電磁…

Java語言的ACM輸入輸出模版

1.多行輸入&#xff0c;每次輸入兩個整數 import java.lang.*; import java.util.*; public class Main{public static void main(String[] args){Scanner in new Scanner(System.in);while(in.hasNextInt()){int a in.nextInt();int b in.nextInt();System.out.println(ab…

VS2002 ~ VS2022平臺工具集對應關系

Visual Studio 版本C++編譯器版本_MSC_VER 宏工具集版本Visual Studio 6.06.01200v60Visual Studio .NET 2002 (7.0) 7.01300v70Visual Studio .NET 2003 (7.1)7.11310v71Visual Studio 2005 (8.0)

特殊成員函數實踐

文章目錄 1.構造函數一般方式2.初始化列表方式&#xff0c;構造函數3.委托構造函數4.析構函數5.淺拷貝6.深拷貝7.移動構造 1.構造函數一般方式 2.初始化列表方式&#xff0c;構造函數 3.委托構造函數 4.析構函數 5.淺拷貝 6.深拷貝 7.移動構造 #include <iostream>…

go語言方法之方法聲明

從我們的理解來講&#xff0c;一個對象其實也就是一個簡單的賦值或者一個變量&#xff0c;在這個對象中會包含一些方法&#xff0c;而一個方法則是一個一個和特殊類型關聯的函數。一個面向對象的程序會用方法來表達其屬性和對應的操作&#xff0c;這樣使用這個對象的用戶就不需…

centos6下面用yum安裝php7.3

首先安裝remi.repo 倉庫 參考: centos yum方式安裝PHP74 centos yum方式安裝PHP74_yum 安裝php74-CSDN博客 yum安裝 yum install php73-php-pecl-zip bz2 curl event gd json openssl mysqlnd PDO yum install php-posix php73 composer.phar config -g repo.packagist co…

AI大模型在測試中的深度應用與實踐案例

文章目錄 1. 示例項目背景2. 環境準備3. 代碼實現3.1. 自動生成測試用例3.2. 自動化測試腳本3.3. 性能測試3.4. 結果分析 4. 進一步深入4.1. 集成CI/CD管道4.1.1 Jenkins示例 4.2. 詳細的負載測試和性能監控4.2.1 Locust示例 4.3. 測試結果分析與報告 5. 進一步集成和優化5.1. …

IND-ID-CPA 和 IND-ANON-ID-CPA Game

Src: https://eprint.iacr.org/2017/967.pdf

算法訓練 | 二叉樹Part5 | 513.找樹左下角的值、112.路徑總和、106.從中序與后序遍歷序列構造二叉樹

目錄 513.找樹左下角的值 遞歸法 迭代法 ? 112.路徑總和 遞歸法 迭代法 106.從中序與后序遍歷序列構造二叉樹 遞歸法 513.找樹左下角的值 題目鏈接&#xff1a;513. 找樹左下角的值 - 力扣&#xff08;LeetCode&#xff09; 文章講解&#xff1a;programmercarl.com…

超聲波清洗機哪些品牌好用點?四大極其出色的機型一目了然

各位眼鏡俠們&#xff0c;在佩戴眼鏡的是&#xff0c;有沒有覺得眼鏡總是有些難以言喻的“味道”或者是污漬在鏡片上面。是的&#xff0c;沒有猜錯&#xff0c;那是我們臉上油脂、汗液和各種不明物質的混合體。特別是在夏天的時候天氣太炎熱會經常出汗&#xff0c;眼鏡上會沾染…

2021職稱繼續教育--加快構建完整內需體系,形成國內國際雙循環相互促進新格局

單選題&#xff08;共7題&#xff0c;每題5分&#xff09; 1、根據本講&#xff0c;突破和推進“一帶一路”戰略&#xff0c;要滿足以企業為主體、以&#xff08;&#xff09;為導向的基本要求。 D、市場 2、根據本講&#xff0c;讓農村消費市場持續擴張的前提&#xff08;&am…

shell將文件分割成小塊文件

背景&#xff1a;某軟件最多支持1G的文件傳輸&#xff0c;需要對大文件進行切割。 方案1&#xff1a; 可以使用split命令將文件均分成10分片。以下是具體的命令示例&#xff1a; split -b $(($(du -b < 文件名) / 10)) 文件名 分片前綴 這里文件名是你想要分割的文件的名…

網絡架構三層到大二層的對比和選擇

在企業的網絡結構選擇中&#xff0c;有二層網絡和三層網絡結構兩種選擇。三層是按照邏輯拓撲結構進行的分類&#xff0c;匯聚層和接入層&#xff0c;流量縱向經過接入層、匯聚層網絡&#xff0c;收斂至骨干核心層。二層網絡結構沒有匯聚層。大二層網絡架構通常使用VLAN&#xf…