LeetCode 將陣列中的零移動到最後,保持原陣列其它元素順序不變
給定一個數組 nums
, 編寫一個函式將所有 0
移動到它的末尾,同時保持非零元素的相對順序。
例如, 定義 nums = [0, 1, 0, 3, 12]
,呼叫函式之後, nums
應為 [1, 3, 12, 0, 0]
。
用兩個標記分別統計總共的元素個數和遍歷到非零的元素個數,統計元素個數的下標每次都加一,如果非零則統計非零元素的下標加一,遍歷時統計遍歷到非零元素將該元素賦值給非統計零元素下標位置所對應的值,第一遍便利結束後將總遍歷元素減去非零元素部分賦值為0
var slow: Int = 0 var fast: Int = 0 for (i in mArray.indices) { if (mArray[i] != 0) { mArray[slow] = mArray[i] slow++ } fast++ } for (i in slow..(fast-1)) { mArray[i] = 0 }
相關推薦
LeetCode 將陣列中的零移動到最後,保持原陣列其它元素順序不變
給定一個數組 nums, 編寫一個函式將所有 0 移動到它的末尾,同時保持非零元素的相對順序。例如, 定義 nums = [0, 1, 0, 3, 12],呼叫函式之後, nums 應為 [1, 3,
劍指offer系列——陣列中重複的數字,構建乘積陣列,正則表示式匹配
陣列中重複的數字 題目描述 在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意一個重複的數字。 例如,如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2
輸入一個英文句子,翻轉句子中的單詞,要求單詞內的字元順序不變。 如:I am a student. 轉換成 student. a am I
輸入一個英文句子,翻轉句子中的單詞,要求單詞內的字元順序不變。 如:I am a student. 轉換成 student. a am I 演算法分析: 1、通過ReverseString(s,0,5)交換字串第0位和第5位的字元,將I am a stud
輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。(筆試題) 句子中單詞以空格符隔開。為簡單起見,沒有標點符號。 例如輸入“I am a student”,則輸出“student a
輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。(筆試題)句子中單詞以空格符隔開。為簡單起見,沒有標點符號。例如輸入“I am a student”,則輸出“student a am I” #include <stdio.h> #include
每天學習一點程式設計(2)(輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變)
輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。 例如輸入“I am a student.”,則輸出“student. a am I”。 /*題目描述:翻轉句子中單詞的順序,但單詞內字元的順序
python-進階教程-從序列中移除重複項並保持元素順序不變
0.摘要 本文主要介紹去除序列中重複的元素,並保持剩下元素順序不變的方法。 1.轉set() 如果只想去除重複元素,而不關心順序問題,可以將序列轉為set,從而達到簡單快速去重的效果。 a = [1,2,3,4,5,6,5,4,3,2,1,7,8,9] a = li
進行List集合去重操作,分為保持原List集合元素順序和不保持原順序
/** * 利用HashSet的不重複原則,去除List集合中重複的元素,但是不保證原List集合中元素的順序 * 並提供效能測試 * 100-----1ms * 1000----2ms * 10000---21ms * 100000-
給定一個數組nums,寫一個函式將所有的值移動0到最後,同時保持非零元素的相對順序不變
import java.util.*;class Solution { public void moveZeroes(int[] nums) { List<Integer> nonZeroElements = new ArrayList&
有一段文字,將文字中的所有單詞,存放到一個字元指標陣列中(要求每個單詞記憶體恰好)
char a[] = " my name is hanmeimei lilei and you no fine thanks "; int i = 0;//迴圈變數 int j = 0;//記錄每個單詞的長度 int k = 0;//記錄指標陣列的下
用 prompt 輸入字串,建立陣列,找出陣列中最大值,問題闡述與解決。
用 prompt 輸入字串建立陣列。用三種方法找出陣列中最大值。問題闡述與解決。 實現目標:輸入一組數,並找出這組數中最大的值。 採用的方法: 雙 for迴圈,列出從小到大(從大到小)順序。 單 for 迴圈,一遍迴圈找出最大值。 使用 Math.max。
C++找出一個二維陣列中的鞍點,即該位置上的元素在該行上最大,在該列上最小(也可能沒有鞍點)
今日正式用csdn部落格記錄,回顧我所學到的知識,分享一些我的人生感悟和自身經歷。也希望未來通夠過此平臺和更多喜愛程式設計的人交流學習。 道聽途說再加上自己的感悟,認為程式設計最重要的是思想,而不是語言本身,語言只是個工具。所以我們得先學思想。遇到問題,應該先想如果是自己去做會怎麼處理,但我們不
一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數
/********************************************* *函式功能: 一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數 *引數說明 * 輸入: [1,2,4,5,6,...,39,39,40,41,
將一句話中的單詞倒置,標點符號不變。Java實現方式
在網上看到一道這樣的題目,例如輸入 i can fly. 輸出fly. can i 於是自己實現了一下。 List<String>list=new ArrayList<>(); String s="i can fly
Python中numpy讀取高維陣列中特定的行,列
直接跑程式碼,看懂程式碼,跑一遍,你自然懂了。 ''' 多維矩陣按括號的層級,從外向內,一次是第1,2,3,...維 b[]內用逗號將各維分開,分別代表第1,2,3...維元素 逗號把陣列分成兩維度,左邊是所有的行(第一維度),右邊是所有的列(第二維度元素) 每個維度上
陣列中巢狀物件,根據物件的某個字對物件進行去重
// 陣列中巢狀物件,根據物件的某個欄位進行物件去重 function uniqObj(data, name) { var dataArr = []; var dataObj = {}; for (var i = 0; i < data.length; i+
JS 陣列中有 undefined 值,用 for 迴圈和 for…in 迴圈遍歷的不同之處
先說結論:在陣列遍歷時一般最好使用for迴圈遍歷 var arr=new Array(); arr[0]="P90"; arr[3]="AWM"; arr[5]="AK47"; console.log("//for 迴圈遍歷"); for(let i=0;i<arr
Java中json轉list,list轉陣列
json轉list public static List<String> jsonToList(String s){ List<String> list =new ArrayList<>(); try
輸入一個數組和一個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字 時間複雜度O(NlogN)
/* *[email protected] 轉載請註明出處 *題目:輸入一個數組和一個數字,在陣列中查詢兩個數, *使得它們的和正好是輸入的那個數字。 *如果有多對數字的和等於輸入的數字,輸出任意一對即可。 *例如輸入陣列1、2、4、7、11、15和數字15。由於
pytorch在fintune時將sequential中的層輸出,以vgg為例
pytorch將sequential中的層輸出,以vgg為例 有時候我們在fintune時發現pytorch把許多層都集合在一個sequential裡,但是我們希望能把中間層的結果引出來做下一步操作,於是我自己琢磨了一個方法,以vgg為例,有點僵硬哈! 首先
postgresql 從json陣列中提取json值,並分組,彙總
postgresql 從json陣列中提取json值,並分組,彙總 json資料 {"os": "Android", "chn": "-1", "dan": 0, "sex": 0, "file": "lv_statistics", "time": "2017-01-