【leetcode面試經典150題】-26. 刪除有序數組中的重復項

26. 刪除有序數組中的重復項

  • 1 題目介紹
  • 1 個人解題思路
    • 1.1 解題代碼
    • 1.2 思路解析
  • 2、分析官方題解
    • 2.1 快慢雙指針


1 題目介紹

在這里插入圖片描述

給你一個 非嚴格遞增排列 的數組 nums ,請你 原地 刪除重復出現的元素,使每個元素 只出現一次 ,返回刪除后數組的新長度。元素的 相對順序 應該保持 一致 。然后返回 nums 中唯一元素的個數。

考慮 nums 的唯一元素的數量為 k ,你需要做以下事情確保你的題解可以被通過:

更改數組 nums ,使 nums 的前 k 個元素包含唯一元素,并按照它們最初在 nums 中出現的順序排列。nums 的其余元素與 nums 的大小不重要。
返回 k 。

1 個人解題思路

1.1 解題代碼

class Solution {public int removeDuplicates(int[] nums) {int length=nums.length;if(length==0){return 0;}int pro=0;int left=1;int right=1;while(right<length){if(nums[pro]==nums[right]){while(nums[pro]==nums[right]){right++;if(right>=length){return pro+1;}}nums[left]=nums[right];               }pro++; left++;      }return pro+1;}
}

1.2 思路解析

  • 如果長度為0或1直接返回
  • 維持三個指針,一個pro指向真實不重復的數組,兩個左右指針left和right,左指針等待交換,右指針遍歷
  • 只要pos指向的等于right指向的,right就往右走,如果走到頭說明大家一樣,直接返回pro+1(數組個數要在下表+1)。如果right停下來了,說明不一樣了,就把right賦給left。
  • 不一樣的話pro和left向前即可。
    在這里插入圖片描述

2、分析官方題解

2.1 快慢雙指針

class Solution {public int removeDuplicates(int[] nums) {int n = nums.length;if (n == 0) {return 0;}int fast = 1, slow = 1;while (fast < n) {if (nums[fast] != nums[fast - 1]) {nums[slow] = nums[fast];++slow;}++fast;}return slow;}
}

跟我的思路一模一樣,沒什么說的,雙指針阿門
明日香鎮樓
在這里插入圖片描述

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

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

相關文章

新手小白如何使用云平臺復現論文代碼——體驗yolov8監控交通流

介紹&#xff1a;YOLOv8 是一種開源目標檢測算法&#xff08;模型&#xff09;&#xff0c;是 YOLO(You Only Look Once) 系列算法的最新版本。它使用單次預測框架對圖像中的對象進行定位和分類。這種方法可以檢測多個對象&#xff0c;并且速度更快&#xff0c;準確率更高。 參…

framework ‘CoreAudioTypes‘ not found

幾天前我升級Xcode15之后遇到了這個問題。關于“CoreAudioTypes”的信息完全是誤導。在我的例子中&#xff0c;原因是在刪除一些舊代碼時&#xff0c;我不小心刪除了仍然需要的類。然而&#xff0c;在構建時彈出的唯一消息是關于“CoreAudioTypes”——當我恢復丟失的類時&…

一例Phorpiex僵尸網絡變種的分析

概述 這是一例Phorpiex僵尸網絡變種&#xff0c;通過NSIS打包&#xff0c;加載惡意dll(Flaminius.dll)&#xff0c;讀取dat文件&#xff08;Preoral.dat&#xff09;&#xff0c;在內存解密并解壓縮出一個Pe&#xff0c;創建同名傀儡進程并注入。通過可移動存儲介質傳播&#…

告別信用卡綁定煩惱:探索這個全功能的Azure語音替代品,包含AI視頻制作!(微軟Azure語音替代方案)

文章目錄 ?? 介紹 ???? 演示環境 ???? 文章內容 ???? 語音合成的替代方案?? 功能特色?? 使用步驟示例?? 相關鏈接 ???? 介紹 ?? 雖然微軟Azure語音服務為個人用戶提供了充足的免費語音合成額度,但其注冊過程中的信用卡綁定要求、繁瑣的API配置步驟卻…

【BOSS直聘爬取系統功能介紹】

完整代碼關注公眾號 &#xff1a; 爬取網站&#xff1a;BOSS直聘&#xff1a;https://www.zhipin.com/ 難點 1. boss直聘不論什么崗位都只會展示10頁數據&#xff0c;就算在網頁里加到了11&#xff0c;內容也會和10一樣。 2.多次訪問會有驗證碼需要登錄&#xff0c;這部分需…

短視頻世上無人再似她:成都鼎茂宏升文化傳媒公司

短視頻世上無人再似她 —— 記憶中的光影傳奇 在短視頻盛行的今天&#xff0c;每一位創作者都在用鏡頭捕捉生活&#xff0c;記錄世界&#xff0c;但有那么一位藝術家&#xff0c;她的作品如同夜空中最亮的星&#xff0c;即便是在信息洪流中&#xff0c;也依然閃耀著獨一無二的…

jupyter_lab修改默認目錄

1、配置jupyterlab和jupyternotebook的默認工作路徑。 2、不廢話&#xff0c;直接上步驟 在Jupyter Notebook或者cmd命令行中輸入&#xff1a; jupyter notebook --generate-config jupyter-lab --generate-config生成配置文件“jupyter_notebook_config.py"和jupyter_la…

高通Android 11/12/13 通過包名設置默認launcher

背景&#xff1a;最近在封裝供第三應用系統SDK 接口&#xff0c;遇到一個無法通過包名設置主launcher代碼坑所以記錄下。 涉及類roles.xml # <!---~ see com.android.settings.applications.defaultapps.DefaultHomePreferenceController~ see com.android.settings.appl…

重啟服務器后node節點顯示NotReady

場景&#xff1a;夜間進行了斷電維護&#xff0c;重啟后發現業務無法使用&#xff0c;檢查發現一個node節點顯示NotReady. 去到目標服務器查看kubelet服務未成功啟動 journalctl -u kubelet 執行journalctl -u kubelet 查看日志發現提示&#xff1a; ailed to run Kubelet: run…

BFS和DFS優先搜索算法

1. BFS與DFS 1.1 BFS DFS即Depth First Search&#xff0c;深度優先搜索。它是一種圖遍歷算法&#xff0c;它從一個起始點開始&#xff0c;逐層擴展搜索范圍&#xff0c;直到找到目標節點為止。 這種算法通常用于解決“最短路徑”問題&#xff0c;比如在迷宮中找到從起點到終…

鐵路機輛作業移動智能終端的特點是什么?

在鐵路機輛作業的現代化進程中&#xff0c;移動智能終端以其獨特的優勢成為了不可或缺的裝備。這些終端以其高度的便攜性&#xff0c;使得工作人員能夠隨時隨地處理各種作業任務&#xff0c;極大地提升了工作效率。它們具備出色的抗干擾性和高防護性&#xff0c;能夠在復雜多變…

算法學習系列(六十一):樹形DP

目錄 引言一、沒有上司的舞會二、樹的重心三、樹的最長路徑四、樹的中心 引言 關于這個樹形 D P DP DP 代碼其實都是那一套&#xff0c;核心還是在于思維上的難度&#xff0c;關鍵是這個思路你能不能想明白&#xff0c;想明白了就非常的簡單&#xff0c;因為代碼幾乎長得都差…

LLM應用-prompt提示:讓大模型總結生成思維導圖

第一步&#xff1a;大模型生成markdown思維導圖格式 例如&#xff1a;kimi 總結pdf文檔案例&#xff1a; 生成的markdown格式&#xff1a; # 知識圖譜的構建及應用 ## 一、知識圖譜的構建 ### 1. 數據采集 - 來源&#xff1a;結構化數據庫、半結構化網頁、非結構化文本 - 預處…

React useState 的調用規則與最佳實踐:為何不在條件語句內使用 useState

在React中&#xff0c;useState 的調用確實有一些特定的規則和最佳實踐 以下是為什么通常不推薦在 if 語句內調用 useState 的原因&#xff1a; 1、Hooks 規則&#xff1a; React Hooks 的規則之一是&#xff0c;你應該在函數組件的頂層調用它們&#xff0c;而不是在循環、條…

技術管理者如何建立權威?

很多技術管理者經常抱怨管理不好做&#xff0c;還是做技術容易&#xff0c;完全受自己控制。員工一點都不聽自己的&#xff0c;安排的工作拖拖拉拉&#xff0c;一點執行力都沒有。 不是管理難做&#xff0c;而是管理者沒有建立權威。如何建立權威&#xff0c;參考以下四點。 …

PCIE V3.0物理層協議學習筆記

一、說明 PCI-Express(peripheral component interconnect express)是一種高速串行計算機擴展總線標準&#xff0c;它原來的名稱為“3GIO”&#xff0c;是由英特爾在2001年提出的&#xff0c;旨在替代舊的PCI&#xff0c;PCI-X和AGP總線標準。 PCIe屬于高速串行點對點雙通道高…

8.11 矢量圖層線要素單一符號使用二

文章目錄 前言箭頭&#xff08;Arrow&#xff09;QGis設置線符號為箭頭(Arrow)二次開發代碼實現 總結 前言 本章介紹矢量圖層線要素單一符號中箭頭&#xff08;Arrow&#xff09;的使用說明&#xff1a;文章中的示例代碼均來自開源項目qgis_cpp_api_apps 箭頭&#xff08;Arr…

證照之星是什么軟件 證照之星哪個版本好用?證照之星支持哪些相機 證照之星XE免費版

許多人都需要使用證件照&#xff0c;為了滿足這一需求&#xff0c;人們會使用照相機、手機、電腦等工具進行拍攝。除此之外&#xff0c;市面上還存在專門的證件照拍攝軟件&#xff0c;比如證照之星。那么&#xff0c;各位小伙伴是否了解證照之星哪個版本好用&#xff0c;證照之…

如何利用3D可視化大屏提升信息展示效果?

老子云3D可視化平臺https://www.laozicloud.com/ 引言 在信息爆炸的時代&#xff0c;如何有效地傳達和展示信息成為了各行各業的一大挑戰。傳統的平面展示方式已經無法滿足人們對信息展示的需求&#xff0c;3D可視化大屏應運而生&#xff0c;成為了提升信息展示效果的利器。本…