Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. Note: You must do this in-place without making a copy of the array. Minimize the total number of operations
題意:給一個數組,把其中的0放到最后。注意不要創(chuàng)建新的數組和最小化所有操作的數量
主要從事網頁設計、PC網站建設(電腦版網站建設)、wap網站建設(手機版網站建設)、成都響應式網站建設、程序開發(fā)、微網站、微信小程序等,憑借多年來在互聯網的打拼,我們在互聯網網站建設行業(yè)積累了豐富的成都做網站、成都網站建設、網絡營銷經驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設項目的能力。void moveZeroes(int* nums, int numsSize) { //選擇排序變一下。。。。。n*2 // int i,j; // for(i=0;i<numsSize;i++) // for(j=i+1;j<numsSize;j++){ // if(nums[i]==0){ // int temp=nums[i]; // nums[i]=nums[j]; // nums[j]=temp; // } // } //網上的做法1.簡單粗暴容易理解。只不過是分了兩步而已。。。 int i; int index=0; for(i=0;i<numsSize;i++){ if(nums[i]!=0){ nums[index]=nums[i]; index++; } } // printf("%d",index); for(i=index;i<numsSize;i++){ nums[i]=0; } ///還有做法2.不太容易理解, }
PS:維持倆指針。。。。。
一開始想到的事排序。。。。。。把0排到最后,雖然過了,但是復雜度n*2.操作數量也挺多的。
看了網上的做法1.容易理解簡單粗暴。
還有一個做法理解起來有點障礙。。。。。。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前標題:LeetCode283.MoveZeroesC語言-創(chuàng)新互聯
轉載注明:http://aaarwkj.com/article34/gospe.html
成都網站建設公司_創(chuàng)新互聯,為您提供域名注冊、軟件開發(fā)、網站維護、用戶體驗、定制開發(fā)、網站內鏈
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯