LeetCode-283. 移動零(Java)

283. 移動零

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 1e4
  • -2e31?<= nums[i] <= 2e31?- 1

進階:你能盡量減少完成的操作次數嗎?

首先想到復制數組 :

class Solution {public void moveZeroes(int[] nums) {int[] ans=new int[nums.length];int k=0;for(int i=0;i<nums.length;i++){if(nums[i]!=0) {ans[k]=nums[i];k++;}}for(int i=k;i<nums.length;i++){ans[i]=0;}for(int i=0;i<nums.length;i++){nums[i]=ans[i];}}
}

但是題目要求不能復制數組,那就直接雙指針,一個用來維護不為0的元素存到哪了,每次有不為0的元素就把右指針的值拿過來,然后右指針處值置為0,左指針?++即可,但是得注意左右指針相等得情況。

class Solution {public void moveZeroes(int[] nums) {int l=0;for(int i=0;i<nums.length;i++){if(nums[i]!=0){if(l!=i){nums[l]=nums[i];l++;nums[i]=0;}else l++;}}}
}

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

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

相關文章

【數據庫】慢SQL優化 - MYSQL

一、數據庫故障的關鍵點 引起數據庫故障的因素有操作系統層面、存儲層面&#xff0c;還有斷電斷網的基礎環境層面&#xff08;以下稱為外部因素&#xff09;&#xff0c;以及應用程序操作數據庫和人為操作數據庫這兩個層面&#xff08;以下稱內部因素&#xff09;。這些故障中外…

桶排序算法深度剖析

&#x1f50d; 桶排序算法深度剖析 &#x1f3af; 核心原理圖解?? 完整算法流程 #mermaid-svg-LyB6SpaZ132X4Wtn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LyB6SpaZ132X4Wtn .error-icon{fill:#552222;}#mer…

對S32K144做的BMS安裝快速開發Simulink庫及BMS例程介紹

前言 本章介紹BMS硬件功能及SimuLink庫為主&#xff0c;捎帶介紹一些例程內容 注意&#xff1a;例程所用的協議均是自定義的 自做的SimuLink庫也會不定期更新 BMS例程的內容不定期維護添加 當前的BMS沒有主動均衡功能&#xff0c;這個有考慮后期加上&#xff0c;當前還處于…

urlencode、html實體編碼、unicode

目錄 urlencode html實體編碼 Unicode編碼 urlencode URL編碼也稱為百分號編碼&#xff0c;用于將URL中的特殊字符轉換為安全傳輸的格式。英文數字一般不編碼 特點&#xff1a; 使用%后跟兩個十六進制數字表示字符 空格編碼為或%20 保留字符&#xff08;; / ? : & …

【HarmonyOS】元服務概念詳解

【HarmonyOS】元服務概念詳解 最近幾年&#xff0c;我們手里的設備越來越多——手機、平板、手表、車機……光是管理這些設備上的APP就夠頭疼了&#xff1a;下載要流量、安裝占內存、換個設備又得重新弄一遍。有沒有更簡單的方式&#xff1f;HarmonyOS推出的“元服務”&#xf…

vscode/cursor怎么自定義文字、行高、顏色

JetBrains Mono: A free and open source typeface for developers | JetBrains: Developer Tools for Professionals and Teams 首先下載上面的文字&#xff0c;然后右鍵全選&#xff0c;安裝 然后重啟cursor 下載插件Apc Customize UI 點擊設置 把下面的代碼復制進去&…

JavaScript 與 C語言基礎知識差別

一&#xff0c; 變量聲明對比 C語言&#xff1a; int age 20; // 必須指定類型 float price 9.99; char grade A; const double PI 3.14; // 常量JavaScript&#xff1a; let age 20; // 數字 var price 9.99; // 現在不用&#xff0c;有缺點 co…

無縫矩陣支持音頻分離帶畫面分割功能的全面解析

一、技術原理與實現方式1. 音頻分離技術核心功能&#xff1a;HDMI無縫矩陣通過硬件或軟件實現音頻加嵌與分離功能&#xff0c;支持多設備音頻的獨立處理與增強。實現方式&#xff1a;音頻加嵌&#xff1a;將外部音頻信號&#xff08;如麥克風、調音臺&#xff09;嵌入HDMI信號中…

AI創作系列第18篇:海貍IM移動端UI統一大升級 - 從混亂到規范的技術重構之路

AI創作系列第18篇&#xff1a;海貍IM移動端UI統一大升級 - 從混亂到規范的技術重構之路本文是海貍IM AI創作系列的第18篇文章&#xff0c;記錄7月11日-13日周末期間對移動端的UI統一升級工作。這次重構不是功能性的&#xff0c;而是架構性的 - 我們重新設計了整個UI架構&#x…

八、nginx搭建,實現vue跳轉nginx跳轉gateway

基本的調用鏈路: vue調用nginx,nginx反向代理gateway,gateway看用戶是否登錄,沒有登錄的話,就創建驗證碼并先輸入密碼后獲取token。 截止現在我們創建了兩個項目能夠通過feign調用,并且創建好了gateway,且能調用對應的項目。 這一章節,我們搭建好nginx,通過反向代理,…

C++ 中常見的字符串定義方式及其用法

引言 最近在學習C&#xff0c;下面將從基礎到進階的順序&#xff0c;列出一些 C 中常見的字符串定義方式及其用法&#xff0c;包含完整代碼和詳細注釋&#xff0c;加深對代碼的理解。 C 風格字符串&#xff08;char*或 char[]&#xff09; 定義方式 #include <iostream>i…

下一代防火墻-防范DOS攻擊、IPS防護、web防護實驗

一、實驗拓撲二、實驗設備1.山石網科系列下一代防火墻2.三層交換機一臺3.windows兩臺4.各種工具&#xff0c;如hyenae、小旋風服務器、永恒之藍等等三、實驗目的1.掌握網絡攻擊防護策略配置2.通過下一代防火墻來防護服務器免受DOS攻擊四、防范Dos攻擊實驗1.將一臺windows配置為…

【人工智能】通過 Dify 構建智能助手

通過 Dify 構建智能助手1.定義2.如何使用智能助手3.添加助手需要的工具4.配置 Agent5.配置對話開場白6.添加文件上傳7.調試與預覽8.應用發布1.定義 智能助手&#xff08;Agent Assistant&#xff09;&#xff0c;利用大語言模型的推理能力&#xff0c;能夠自主對復雜的人類任務…

破局與重構:文心大模型開源的產業變革密碼

——從技術壟斷到生態共享的戰略轉型深度解析 引言&#xff1a;一場靜悄悄的革命 2024年&#xff0c;當百度宣布文心大模型4.5系列全面開源時&#xff0c;這不僅僅是一次技術發布&#xff0c;更是一場關于AI產業未來走向的戰略博弈。在全球AI競爭白熱化的當下&#xff0c;開源意…

7.15 窗口函數 | 二分 | 位運算

05.071.位運算2.位圖class Solution { public:int exchangeBits(int num) {bitset<33> bitNum(num);for (int i 0; i < 16; i){bitNum[32] bitNum[2*i];bitNum[2*i] bitNum[2*i1];bitNum[2*i1] bitNum[32];}return (int)bitNum.to_ulong();} };577.員工獎金select…

Windows 安裝配置Claude Code

文章目錄1.安裝node.js2.安裝 Claude Code3.測試claude1.安裝node.js https://nodejs.org/en/download/ 一路回車即可順利安裝完成。 再鍵盤按下Win R快捷鍵&#xff0c;輸入cmd&#xff0c;然后回車啟動命令行窗口。分別輸入node -v和npm -v來查看node.js版本和npm版本。 環…

C++動態數組vector

一、為什么要用vector而不是數組 雖有嘉肴&#xff0c;弗食&#xff0c;不知其旨也。______,____,____________。 簡單來說就是節約內存&#xff0c;不容易RE 二、如何使用vector 既謂之數組&#xff0c;則用之如數組 1.定義 vector<數據類型>名稱 vector<int …

14.使用GoogleNet/Inception網絡進行Fashion-Mnist分類

14.1 GoogleNet網絡結構設計import torch from torch import nn from torch.nn import functional as F from torchsummary import summary class Inception(nn.Module):def __init__(self, in_channels,c1,c2,c3,c4,**kwargs):super(Inception,self).__init__(**kwargs)#第一條…

NE綜合實驗2:RIP 與 OSPF 動態路由精細配置、FTPTELNET 服務搭建及精準訪問限制

NE綜合實驗2&#xff1a;RIP 與 OSPF 動態路由精細配置、FTPTELNET 服務搭建及精準訪問限制 涉及的協議可以看我之前的文章&#xff1a; RIP實驗 OSPF協議&#xff1a;核心概念與配置要點解析 ACL協議&#xff1a;核心概念與配置要點解析 基于OSPF動態路由與ACL訪問控制的網…

Android 插件化實現原理詳解

Android 插件化實現原理詳解 插件化技術是Android開發中一項重要的高級技術&#xff0c;它允許應用動態加載和執行未安裝的APK模塊。以下是插件化技術的核心實現原理和關鍵技術點&#xff1a; 一、插件化核心思想宿主與插件&#xff1a; 宿主(Host)&#xff1a;主應用APK&#…