給定一個(gè)數(shù)組 nums解总,編寫(xiě)一個(gè)函數(shù)將所有 0 移動(dòng)到數(shù)組的末尾瀑梗,同時(shí)保持非零元素的相對(duì)順序。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說(shuō)明:
必須在原數(shù)組上操作实胸,不能拷貝額外的數(shù)組剑鞍。
盡量減少操作次數(shù)。
-(NSArray *)moveZeroes {
? ? NSMutableArray *nums = [@[@(0),@(1),@(0),@(3),@(1),@(2)]mutableCopy];
? ? int j = 0;
? ? for (int i = 0; i < nums.count; i ++) {
? ? ? ? if ([nums[i]intValue] != 0) {
? ? ? ? ? ? nums[j] = nums[i];
? ? ? ? ? ? if (i != j) {
? ? ? ? ? ? ? ? nums[i] = @(0);
? ? ? ? ? ? }
? ? ? ? ? ? j ++;
? ? ? ? }
? ? }
? ? return nums;
}
leetcode鏈接:https://leetcode-cn.com/problems/move-zeroes/