给定数组:
    int[] arr = {5,3,0,1,90,0,7};
    删除其中的0并保证输出,要求在原来数组上进行操作。

    分析:
    1、首先想有没有最优的解决方案,二分的话,似乎没有什么思路,因为是无序的,找不到可以二分的点。
    2、额外空间复杂度为O(1),通常是在原数组上进行交换操作。�
    3、经典的荷兰国旗问题,印象中是不稳定的,但是在这种一个partition全是相同元素的情况下,前面的东西是有序的

    所以,其实通用的方式就是维护左边界,表示非0区域边界,cur指针从头部遍历,当遇到0的时候,cur++, 找到第一个非0的跟
    左边界右侧的值进行交换。

    思考:
    1、谁说荷兰国旗不能实现稳定排序,这道题就能保证左边的partition有序。
    2、如果0元素是对象,这道题用荷兰国旗还真的是稳定吗。
    点评:
    虽然简单,但是能重新思考荷兰国旗问题的不稳定、伪稳定性、不同的0-1partition问题场景。