用Rust刷LeetCode之27 移除元素

27. 移除元素

難度: 簡單

原描述:

alt

新描述:

alt



func?removeElement(nums?[]int,?val?int)?int?{
?for?i?:=?0;?i?<?len(nums);?i++?{
??if?nums[i]?==?val?{
???nums?=?append(nums[:i],?nums[i+1:]...)
???i--
??}
?}
?return?len(nums)

}
alt

Rust 版本


下面這種寫法編譯無法通過:

pub?fn?remove_element(nums:?&mut?Vec<i32>,?val:?i32)?->?i32?{
????for?i?in?0..nums.len()?{
????????if?nums[i]?==?val?{
????????????nums.remove(i);
????????????i?=?i?-?1;
????????}
????}

????return?nums.len()?as?i32;
}

error[E0384]: cannot assign twice to immutable variable i


在 Rust 中,for 循環中的循環變量是不可變的,因此不能直接修改 i 的值。如果想在循環中修改 i 的值,可以改用 while 循環,并手動更新 i 的值。以下是一個示例的實現:

fn?main()?{
????let?mut?nums?=?vec![3,?1,?4,?1,?5,?9,?2,?6,?5,?4];
????let?len?=?remove_element(&mut?nums,?4);
????println!("移除元素后vec的長度為:?{:?}",?len);?//?輸出:?8
}

pub?fn?remove_element(nums:?&mut?Vec<i32>,?val:?i32)?->?i32?{
????let?mut?i?=?0;

????while?i?<?nums.len()?{
????????if?nums[i]?==?val?{
????????????nums.remove(i);
????????}?else?{
????????????i?+=?1;
????????}
????}

????nums.len()?as?i32
}
alt

本文由 mdnice 多平臺發布

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

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

相關文章

基于ssm平面設計課程在線學習平臺系統源碼和論文

idea 數據庫mysql5.7 數據庫鏈接工具&#xff1a;navcat,小海豚等 隨著信息化時代的到來&#xff0c;管理系統都趨向于智能化、系統化&#xff0c;平面設計課程在線學習平臺系統也不例外&#xff0c;但目前國內的市場仍都使用人工管理&#xff0c;市場規模越來越大&#xff0c;…

【ArcGIS微課1000例】0079:ArcGIS Earth根據經緯坐標生成點shapefile

本文以氣象臺站數據的生成為例,詳細介紹ArcGIS Earth中導入X、Y經緯度坐標,生成Shapefile點數據的流程。 文章目錄 一、氣象臺站分布二、添加經緯度坐標三、符號化設置四、另存為一、氣象臺站分布 根據氣象臺站的經緯度坐標,可以很方便的在各種GIS平臺上生成點,并保存為多…

智能優化算法應用:基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.蜣螂算法4.實驗參數設定5.算法結果6.參考文獻7.MATLAB…

STM32基礎教程 p16 窗口看門狗(WWDG)

1 窗口看門狗工作原理 1.1 簡介 WWDG簡介 窗口看門狗通常被用來監測&#xff0c;由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運 行序列而產生的軟件故障。除非遞減計數器的值在T6位變成0前被刷新&#xff0c;看門狗電路在達到預置 的時間周期時&#xff0c;會產…

定位分析RCU stall問題

使用RCU_CPU_STALL_CPUTIME 在編譯內核時打開CONFIG_RCU_CPU_STALL_CPUTIMEy或者在啟動參數中增加 rcupdate.rcu_cpu_stall_cputime1, 這樣在發生RCU STALL告警時就會有下面附加信息: rcu: hardirqs softirqs csw/systemrcu: number: 624 45 …

聯合基于信息論的安全和隱蔽通信的框架

這個標題很帥 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息論安全 (ITS)隱蔽通信需要(CC)Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden 202…

ffmpeg編解碼——時間基(time base)概念

文章目錄 FFmpeg 編解碼——時間基&#xff08;Time Base&#xff09;概念1. 時間基&#xff08;Time Base&#xff09;概念1.1 定義與作用1.2 表現形式 2. 時間基在FFmpeg中的應用2.1 時間戳2.2 持續時間 3. 理解FFmpeg中的時間基轉換3.1 av_rescale_q 函數3.2 av_rescale_q_r…

Shell數組函數:數組——數組和循環(四)

使用數組統計&#xff0c;用戶shell的類型和數量 一、腳本編輯 [root192 ~]# vim shell.sh #!/bin/bash declare -A shells while read ii dotypeecho $ii | awk -F: {print $7}let shells[$type] done < /etc/passwdfor i in ${!shells[]} doecho "$i: ${shells[$i]…

多任務學習(Multi-Task Learning)和遷移學習(Transfer Learning)的詳細解釋以及區別(系列1)

文章目錄 前言一、多任務學習&#xff08;Multi-Task Learning&#xff09;是什么&#xff1f;二、多任務學習&#xff08;Multi-Task Learning&#xff09;對數據的要求三、遷移學習是什么&#xff1f;四&#xff0c;遷移學習對數據的要求五&#xff0c;多任務學習與遷移學習的…

DevOps - Spug 自動化運維平臺

關于Spug Spug&#xff1a;麻雀&#xff0c;麻雀雖小&#xff0c;五臟俱全。 Spug是面向中小型企業設計的輕量級無Agent的自動化運維平臺&#xff0c;整合了主機管理、主機批量執行、主機在線終端、文件在線上傳下載、應用發布部署、在線任務計劃、配置中心、監控、報警等一系…

利用jdbc對數據庫進行增刪改查

步驟/過程&#xff1a; 1&#xff0c;導入驅動包 2&#xff0c;加載驅動包 3&#xff0c;輸入信息&#xff0c;進行數據庫連接 4&#xff0c;創建 statement對象 5&#xff0c;執行sql語句 6&#xff0c;如果是查詢操作&#xff0c;利用ResultSet處理數據&#xf…

智能優化算法應用:基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.鯨魚算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

Python-pdf工具自制(合并、拆分、刪除)

pdf工具&#xff0c;之前寫的合并工具有點麻煩&#xff0c;使用PyQt5庫重寫合并拆分和刪除指定頁面的程序 實現如圖&#xff1a; 代碼&#xff1a; import sysimport osfrom PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QFileDia…

java 好碼

1【強制】不要在 foreach 循環里進行元素的 remove/add 操作。 remove 元素請使用 Iterator方式&#xff0c;如果并發操作&#xff0c;需要對 Iterator 對象加鎖。 正例&#xff1a; List<String> list new ArrayList<>(); list.add("1");list.add(…

unity 2d 入門 飛翔小鳥 Cinemachine 記錄分數(十二)

1、創建文本 右鍵->create->ui->leagcy->text 2、設置字體 3、設置默認值和數字 4、當切換分辨率&#xff0c;分數不見問題 拖拽這里調整 調整到如下圖 5、編寫得分腳本 using System.Collections; using System.Collections.Generic; using UnityEngine; …

Docker網絡架構介紹

本文主要介紹了Docker容器的單機網絡架構與集群網絡架構&#xff0c;輔以演示&#xff0c;并簡單介紹了網絡管理中的命令。 前文&#xff1a; Docker的安裝與簡單操作命令-CSDN博客 docker網絡原理介紹 與ovs類似&#xff0c;docker容器采用veth-pair linux bridge (虛擬交…

mysql語句練習

1、查詢"01"課程比"02"課程成績高的學生的信息及課程分數 SELECT student.*,s1.s_score,s2.s_score FROM student,score s1,score s2 WHERE student.s_ids1.s_id AND student.s_ids2.s_id AND s1.c_id01 AND s2.c_id02 AND s1.s_score>s2.s_score 2、…

0007Java程序設計-ssm基于微信小程序的在線考試系統

文章目錄 **摘要**目 錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 網絡技術的快速發展給各行各業帶來了很大的突破&#xff0c;也給各行各業提供了一種新的管理技術&#xff0c;基于微信小程序的在線考試…

Linux下apisix離線安裝教程

Linux下apisix離線安裝教程 一、首先需要安裝etcd&#xff1a;二、通過rpm離線安裝apisix三、啟動apisix四、安裝apisix-dashboard1、安裝2、更改dashboard登錄賬號名和密碼3、運行 一、首先需要安裝etcd&#xff1a; 解壓縮etcd后執行以下命令&#xff1a; tar -xvf etcd-v3.…

C#注冊表技術及操作

目錄 一、注冊表基礎 1.Registry和RegistryKey類 &#xff08;1&#xff09;Registry類 &#xff08;2&#xff09;RegistryKey類 二、在C#中操作注冊表 1.讀取注冊表中的信息 &#xff08;1&#xff09;OpenSubKey()方法 &#xff08;2&#xff09;GetSubKeyNames()…