leetcode上move zeroes问题

问题如下:

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:

  1. You must do this in-place without making a copy of the array.
  2. Minimize the total number of operations.

 

我的解答:

package com.jianghua.index;

import java.util.Scanner;

public class orderr {
    
     public static void main(String[] args) {    
         Scanner sc = new Scanner(System.in);
            
             int n = 0;
             n=sc.nextInt();
            int [] Array = new int[n];
            Scanner scanner = new Scanner(System.in);
            for (int i = 0; i < Array.length; i++) {
                Array[i]=scanner.nextInt();
            }
            for (int i = 0; i < Array.length; i++) {
                if (Array[i]==0) {
                        for (int j=Array.length-1; j >=0; j--) {
                            
                             if (Array[j]!=0) {
                                 if (i>j) {
                                        break;
                                    }else {
                                int temp;
                                temp = Array[i];
                                Array[i]=Array[j];
                                Array[j]=temp;
                                break;}
                            }
                        }                    
                    }
                }
            
    
                for (int i = 0; i < Array.length; i++) {
                    if (Array[i]==0) {
                        break;
                    }else {
                        for (int k = i+1; k < Array.length; k++) {
                            if (Array[k]!=0) {
                                if (Array[i]>Array[k]) {
                                    int temp;
                                    temp=Array[i];
                                    Array[i]=Array[k];
                                    Array[k]=temp;
                                }
                            }
                        }
                    }
                    
                }
                for (int j = 0; j < Array.length; j++) {
                    System.out.print(Array[j]);
            }
            
            
    }
}

 

posted @ 2015-09-22 11:18  清水僧人Robin  阅读(119)  评论(0编辑  收藏  举报