力扣26——刪除有序數組中的重復項

目錄

1.題目描述:

2.算法分析:

3.代碼展示:


1.題目描述:

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

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

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

判題標準:

系統會用下面的代碼來測試你的題解:

int[] nums = [...]; // 輸入數組
int[] expectedNums = [...]; // 長度正確的期望答案int k = removeDuplicates(nums); // 調用assert k == expectedNums.length;
for (int i = 0; i < k; i++) {assert nums[i] == expectedNums[i];
}

如果所有斷言都通過,那么您的題解將被?通過

示例 1:

輸入:nums = [1,1,2]
輸出:2, nums = [1,2,_]
解釋:函數應該返回新的長度 2

示例 2:

輸入:nums = [0,0,1,1,1,2,2,3,3,4]
輸出:5, nums = [0,1,2,3,4]
解釋:函數應該返回新的長度 5

2.算法分析:

  1. 初始化指針??:

    • 使用一個指針?index?來表示當前不重復數組的末尾位置。初始時,index = 1,因為第一個元素(nums[0])肯定是不重復的。
  2. ??遍歷數組??:

    • 從第一個元素開始(i = 0),遍歷到倒數第二個元素(i < nums.size() - 1)。
    • 比較當前元素?nums[i]?和下一個元素?nums[i + 1]
      • 如果它們不相等,說明?nums[i + 1]?是一個新的唯一元素,將其放到?nums[index]?的位置,然后?index?自增。
      • 如果它們相等,則跳過,繼續檢查下一個元素。
  3. ??返回結果??:

    • 最終?index?的值即為去重后數組的長度。

3.代碼展示:

int removeDuplicates(vector<int>& nums) {int index = 1;//開始遍歷數組for (int i = 0; i < nums.size()-1; i++) {if (nums[i] != nums[i + 1]) {nums[index] = nums[i + 1];index++;}}return index;
}

26. 刪除有序數組中的重復項 - 力扣(LeetCode)https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/

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

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

相關文章

ggplot2 | GO barplot with gene list

1. 效果圖 2. 代碼 數據是GO的輸出結果&#xff0c;本文使用的是 metascape 輸出的excel挑選的若干行。 # 1. 讀取數據 datread.csv("E:\\research\\scPolyA-seq2\\GO-APA-Timepoint\\test.csv", sep"\t") head(dat)# 2. 選擇所需要的列 dat.usedat[, c(…

學習搭子,秘塔AI搜索

什么是秘塔AI搜索 《秘塔AI搜索》的網址&#xff1a;https://metaso.cn/ 功能&#xff1a;AI搜索和知識學習&#xff0c;其中學習部分是亮點&#xff0c;也是主要推薦理由。對應的入口&#xff1a;https://metaso.cn/study 推薦理由 界面細節做工精良《今天學點啥》板塊的知…

【C語言】--指針超詳解(三)

目錄 一.數組名的理解 二.使用指針訪問數組 三.一維數組傳參的本質 四.冒泡排序 五.二級指針 六.指針數組 6.1--指針數組的定義 6.2--指針數組模擬二維數組 &#x1f525;個人主頁&#xff1a;草莓熊Lotso的個人主頁 &#x1f3ac;作者簡介&#xff1a;C方向學習者 &…

Linux防火墻

1.防火墻是一種位于內部網絡與外部網絡之間的網絡安全系統&#xff0c;它依照特定的規則&#xff0c;允許或限制傳輸的數據通過&#xff0c;以保護內部網絡的安全。以下從功能、分類、工作原理等方面為你詳細講解&#xff1a; 功能訪問控制&#xff1a;這是防火墻最主要的功能。…

嵌入式培訓之C語言學習完(十七)結構體、共用體、枚舉、typedef關鍵字與位運算

目錄 一、結構體&#xff08;struct關鍵字&#xff09; &#xff08;一&#xff09;聲明一個結構體數據類型 &#xff08;二&#xff09;結構體的成員初始化與賦值 a、結構體變量賦值 b、結構體成員初始化 c、結構體的定義形式 &#xff08;三&#xff09;考點&#xff…

Python字典:數據操作的核心容器

在Python編程生態中&#xff0c;字典&#xff08;dict&#xff09;是最常用且功能強大的內置數據結構之一。它以鍵值對&#xff08;Key-Value Pair&#xff09;的形式存儲數據&#xff0c;為快速查找、靈活映射關系提供了天然支持。無論是數據清洗、算法實現還是Web開發&#x…

按位寬提取十六進制值

需求&#xff1a;給出一個十六進制值&#xff0c;要求提取high和low位之間的值。比如16ha0f0&#xff0c;這是一個16bit寬的十六進制數0xa0f0&#xff0c;提取[15:12]范圍內的值。 def extract_bits(value, high, low):"""從 value 中提取 [high:low] 位的值:p…

LeRobot 項目部署運行邏輯(六)——visualize_dataset_html.py/visualize_dataset.py

可視化腳本包括了兩個方法&#xff1a;遠程下載 huggingface 上的數據集和使用本地數據集 腳本主要使用兩個&#xff1a; 目前來說&#xff0c;ACT 采集訓練用的是統一時間長度的數據集&#xff0c;此外&#xff0c;這兩個腳本最大的問題在于不能裁剪&#xff0c;這也是比較好…

SSTI模版注入

1、概念 SSTI是一種常見的Web安全漏洞&#xff0c;它允許攻擊者通過注入惡意模板代碼&#xff0c;使服務器在渲染模板時執行非預期的操作。 &#xff08;1&#xff09;渲染模版 至于什么是渲染模版&#xff1a;服務器端渲染模板是一種Web開發技術&#xff0c;它允許在服務器端…

關于點膠機的精度

一、精度&#xff1a; 1:X/y軸定位精度常通在5個絲左右&#xff0c;Z軸在3個絲左右&#xff0c; 如果采用伺服電機絲桿配置&#xff0c;可提升至于個2絲左右。 2&#xff1a;膠水控制精度&#xff1a;通過噴閥驅動器&#xff0c;氣壓等參數&#xff0c;實現膠量控制&#xf…

gitee推送更新失敗問題記錄:remote: error: hook declined to update refs/heads/master

問題描述&#xff1a; gitee推送更新時&#xff0c;提示&#xff1a; 解決方法&#xff1a; 登錄Gitee&#xff0c;進入【個人主頁】 點擊【個人設置】 更改郵箱的配置&#xff0c;如下&#xff1a; 更改“禁止命令行推送暴露個人郵箱”&#xff0c;將其關閉&#xff1a;

Java如何獲取電腦分辨率?

以下是一個 Java 程序示例&#xff0c;用于獲取電腦的主屏幕分辨率&#xff1a; import java.awt.*; public class ScreenResolutionExample { public static void main(String[] args) { // 獲取默認的屏幕設備 GraphicsDevice device GraphicsEnvironm…

WPF 3D圖形編程核心技術解析

一、三維坐標系系統 WPF采用右手坐標系系統&#xff0c;空間定位遵循&#xff1a; X 軸 → 右 Y 軸 → 上 Z 軸 → 觀察方向 X軸 \rightarrow 右\quad Y軸 \rightarrow 上\quad Z軸 \rightarrow 觀察方向 X軸→右Y軸→上Z軸→觀察方向 三維坐標值表示為 ( x , y , z ) (x, y,…

【庫(Library)、包(Package)和模塊(Module)解析】

在Python中&#xff0c;**庫&#xff08;Library&#xff09;、包&#xff08;Package&#xff09;和模塊&#xff08;Module&#xff09;**是代碼組織的不同層級&#xff0c;而import語句的導入行為與它們密切相關。以下是詳細對比和解釋&#xff1a; &#x1f4e6; 1. 核心概…

裸機上的 printf:在無操作系統環境下構建 C 標準庫

在嵌入式開發和底層系統編程領域&#xff0c;裸機開發是一項極具挑戰性但又至關重要的任務。想象一下&#xff0c;在沒有操作系統支持的情況下&#xff0c;讓 C 語言的標準庫函數&#xff0c;如printf正常工作&#xff0c;這聽起來是不是很有趣又充滿挑戰&#xff1f;今天&…

基于STM32F103的智能機械臂識別與控制項目(課件PPT+源代碼)

以下是基于 STM32F103 的智能機械臂識別與控制項目的詳細介紹&#xff1a; 項目概述 該項目以 STM32F103 為核心控制器&#xff0c;結合多種傳感器和技術&#xff0c;實現了機械臂的智能識別與控制功能&#xff0c;可完成倉庫貨物的識別、搬運等任務&#xff0c;并支持多種控…

Codeforces Round 1023 (Div. 2)

Dashboard - Codeforces Round 1023 (Div. 2) - Codeforces 一個構造問題&#xff0c;我把最大的數放在一個數組&#xff0c;其余數放在另一個數組&#xff0c;就能保證gcd不同 來看代碼&#xff1a; #include <bits/stdc.h> using namespace std;int main() {int t;ci…

6.01 Python中打開usb相機并進行顯示

本案例介紹如何打開USB相機并每隔100ms進行刷新的代碼,效果如下: 一、主要思路: 1. 打開視頻流、讀取幀 self.cam_cap = cv2.VideoCapture(0) #打開 視頻流 cam_ret, cam_frame = self.cam_cap.read() //讀取幀。 2.使用定時器,每隔100ms讀取幀 3.顯示到Qt的QLabel…

JVM——即時編譯

分層編譯模式&#xff1a;動態平衡啟動速度與執行效率 分層編譯是現代JVM&#xff08;如HotSpot、GraalVM&#xff09;實現高性能的核心策略之一&#xff0c;其核心思想是根據代碼的執行熱度動態選擇不同的編譯層次&#xff0c;實現啟動速度與運行效率的最佳平衡。以HotSpot虛…

Auto DOP:讓并行執行實現智能調優 | OceanBase 實踐

隨著數據量的迅速增長&#xff0c;企業數據庫往往面臨著一個困局&#xff1a;復雜的分析查詢需要充分的資源來保證性能&#xff0c;但過多增加并行執行又會造成資源競爭&#xff0c;影響系統穩定性。傳統基于DBA人工干預的并行度調節機制&#xff0c;既低效又難以適應動態變化的…