LeetCode.283移動零

題目鏈接:283. 移動零 - 力扣(LeetCode)

題目描述:

給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。

請注意 ,必須在不復制數組的情況下原地對數組進行操作。

示例 1:

輸入: nums = [0,1,0,3,12]
輸出: [1,3,12,0,0]

示例 2:

輸入: nums = [0]
輸出: [0]

提示:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

current (現行的) dest(目的地)

解法思路:

  • 使用雙指針算法(數組下標代表指針)
    • cur:從左往右循環遍歷數組
    • dest:已處理區間,非零元素的最后一個位置
  • 會出三個區間
    • [0 , dest]:非0區間
    • [dest+1 , cur-1]:0區間
    • [cur , length-1]:需要進行判斷的區間

代碼實現:

// 使用雙指針法將數組中的所有 0 移動到末尾,同時保持非零元素的相對順序
for (int cur = 0, dest = -1; cur < nums.length; cur++) {// 當前遍歷的元素不為 0if (nums[cur] != 0) {// dest 指針向右移動一位,表示找到一個可以放置非零數的位置dest++;// 將當前非零值交換到 dest 所在位置// 這樣做可以保證所有非零元素都被移動到了前面,并且順序不變int tem = nums[cur];nums[cur] = nums[dest];nums[dest] = tem;// 如果 cur == dest,那么就是自己和自己交換,不影響。// 如果 cur > dest,說明中間有 0,把非零數向前移動,把 0 向后擠。}
}

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

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

相關文章

2025年7月4日漏洞文字版表述一句話版本(漏洞危害以及修復建議),通常用于漏洞通報中簡潔干練【持續更新中】,漏洞通報中對于各類漏洞及修復指南

漏洞及修復指南 一、暗鏈 危害&#xff1a;攻擊者通過技術手段在用戶網頁中插入隱藏鏈接或代碼&#xff0c;并指向惡意網站&#xff0c;可導致用戶信息泄露、系統感染病毒&#xff0c;用戶訪問被劫持至惡意網站&#xff0c;泄露隱私或感染惡意軟件&#xff0c;被黑客利用進行…

python --飛漿離線ocr使用/paddleocr

依賴 # python3.7.3 paddleocr2.7.0.2 paddlepaddle2.5.2 loguru0.7.3from paddleocr import PaddleOCR import cv2 import numpy as npif __name__ __main__:OCR PaddleOCR(use_doc_orientation_classifyFalse, # 檢測文檔方向use_doc_unwarpingFalse, # 矯正扭曲文檔use…

數據結構與算法:貪心(三)

前言 感覺開始打cf了以后貪心的能力有了明顯的提升,讓我們謝謝cf的感覺場。 一、跳躍游戲 II class Solution { public:int jump(vector<int>& nums) {int n=nums.size();//怎么感覺這個題也在洛谷上刷過(?)int cur=0;//當前步最遠位置int next=0;//多跳一步最遠…

【Redis篇】數據庫架構演進中Redis緩存的技術必然性—高并發場景下穿透、擊穿、雪崩的體系化解決方案

&#x1f4ab;《博主主頁》&#xff1a;    &#x1f50e; CSDN主頁__奈斯DB    &#x1f50e; IF Club社區主頁__奈斯、 &#x1f525;《擅長領域》&#xff1a;擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控&#xff1b;并對…

Docker 實踐與應用案例

引言 在當今的軟件開發和部署領域&#xff0c;高效、可移植且一致的環境搭建與應用部署是至關重要的。Docker 作為一款輕量級的容器化技術&#xff0c;為解決這些問題提供了卓越的方案。Docker 通過容器化的方式&#xff0c;將應用及其依賴項打包成一個獨立的容器&#xff0c;…

《論三生原理》以非共識路徑實現技術代際躍遷??

AI輔助創作&#xff1a; 《論三生原理》以顛覆傳統數學范式的非共識路徑驅動多重技術代際躍遷&#xff0c;其突破性實踐與爭議并存&#xff0c;核心論證如下&#xff1a; 一、技術代際躍遷的實證突破? ?芯片架構革新? 為華為三進制邏輯門芯片提供理論支撐&#xff0c;通過對…

一體機電腦為何熱度持續上升?消費者更看重哪些功能?

一體機電腦&#xff08;AIO&#xff0c;All-in-One&#xff09;將主機硬件與顯示器集成于單一機身。通常僅需連接電源線&#xff0c;配備無線鍵盤、鼠標即可啟用。相比傳統臺式電腦和筆記本電腦&#xff0c;選購一體機的客戶更看重一體機的以下特點。 一體機憑借其節省空間、簡…

無人機載重模塊技術要點分析

一、技術要點 1. 結構設計創新 雙電機卷揚系統&#xff1a;采用主電機&#xff08;張力控制&#xff09;和副電機&#xff08;卷揚控制&#xff09;協同工作&#xff0c;解決繩索纏繞問題&#xff0c;支持30米繩長1.2m/s高速收放&#xff0c;重載穩定性提升。 軸雙槳布局…

【大模型推理】工作負載的彈性伸縮

基于Knative的LLM推理場景彈性伸縮方案 1.QPS 不是一個好的 pod autoscaling indicator 在LLM推理中&#xff0c; 為什么 2. concurrency適用于單次請求資源消耗大且處理時間長的業務&#xff0c;而rps則適合較短處理時間的業務。 3.“反向彈性伸縮”的概念 4。 區分兩種不同的…

STM32F103_Bootloader程序開發12 - IAP升級全流程

導言 本教程使用正點原子戰艦板開發。 《STM32F103_Bootloader程序開發11 - 實現 App 安全跳轉至 Bootloader》上一章節實現App跳轉bootloader&#xff0c;接著&#xff0c;跳轉到bootloader后&#xff0c;下位機要發送報文‘C’給IAP上位機&#xff0c;表示我準備好接收固件數…

AI驅動的未來軟件工程范式

引言&#xff1a;邁向智能驅動的軟件工程新范式 本文是一份關于構建和實施“AI驅動的全生命周期軟件工程范式”的簡要集成指南。它旨在提供一個獨立、完整、具體的框架&#xff0c;指導組織如何將AI智能體深度融合到軟件開發的每一個環節&#xff0c;實現從概念到運維的智能化…

Hawk Insight|美國6月非農數據點評:情況遠沒有看上去那么好

7月3日&#xff0c;美國近期最重要的勞動力數據——6月非農數據公布。在ADP遇冷之后&#xff0c;市場對這份報告格外期待。 根據美國勞工統計局公布報告&#xff0c;美國6月非農就業人口增加 14.7萬人&#xff0c;預期 10.6萬人&#xff0c;4月和5月非農就業人數合計上修1.6萬人…

Python 的內置函數 reversed

Python 內建函數列表 > Python 的內置函數 reversed Python 的內置函數 reversed() 是一個用于序列反轉的高效工具函數&#xff0c;它返回一個反向迭代器對象。以下是關于該函數的詳細說明&#xff1a; 基本用法 語法&#xff1a;reversed(seq)參數&#xff1a;seq 可以是…

溝通-交流-說話-gt-jl-sh-goutong-jiaoliu-shuohua

溝通,先看|問狀態(情緒) 老婆下班回家,我說,到哪兒了,買點玉米哦;她說你為啥不買, 我說怎么如此大火氣, 她說你安排我&#xff0c;我不情愿;你怎么看 和女人溝通不能目標優先 先問狀態并表達關心 用感謝代替要求&#xff08;“你上次買的玉米特別甜&#xff0c;今天突然又饞了…

Ubuntu20.04運DS-5

準備工作&#xff1a; cd /home/rlk/rlk/runninglinuxkernel_5.0 #make clean mkdir _install_arm64/dev sudo mknod _install_arm64/dev/console c 5 1 ./build_ds5_arm64.sh git checkout boot-wrapper-aarch64/fvp-base-gicv3-psci.dtb ./build_ds5_arm64.sh創建工程步驟2.5…

區塊鏈網絡P2P通信原理

目錄 區塊鏈網絡P2P通信原理引言:去中心化的網絡基石1. P2P網絡基礎架構1.1 區塊鏈網絡拓撲1.2 節點類型對比2. 節點發現與連接2.1 初始引導過程2.2 節點發現協議3. 網絡通信協議3.1 消息結構3.2 核心消息類型4. 數據傳播機制4.1 交易傳播流程4.2 Gossip協議實現4.3 區塊傳播優…

RNN和Transformer區別

RNN&#xff08;循環神經網絡&#xff09;和 Transformer 是兩種廣泛應用于自然語言處理&#xff08;NLP&#xff09;和其他序列任務的深度學習架構。它們在設計理念、性能特點和應用場景上存在顯著區別。以下是它們的詳細對比&#xff1a;1. 基本架構RNN&#xff08;循環神經網…

[學習記錄]Unity-Shader-幾何著色器

幾何著色器是可編程渲染管線中的一個可選階段&#xff0c;位于頂點著色器之后和片段著色器之前。其核心能力在于動態生成和操作幾何體圖元。 一.圖元 了解圖元是理解幾何著色器的基礎和前提&#xff0c;因為幾何著色器的工作就是接收圖元&#xff0c;然后輸出圖元。 幾何著色…

Paimon 布隆過濾器索引

布隆過濾器原理布隆過濾器的最優參數推導是其理論核心&#xff0c;理解了這個過程&#xff0c;就能明白 BloomFilter64 構造函數里計算公式的由來了。下面我們一步步來推導。首先&#xff0c;我們定義幾個關鍵變量&#xff1a;n: 預估要插入的元素數量 (對應代碼中的 items)。m…

Python-GUI-wxPython-布局

1 需求 2 接口 wx.Sizer().Add() proportion&#xff08;比例&#xff09;參數是一個整數&#xff0c;用于指定當父布局管理器的空間有剩余時&#xff0c;被添加的對象&#xff08;這里是 general_sizer 及其包含的組件&#xff09;在布局方向上可以占據的額外空間的比例。 當…