144. 交错正负数
发布日期:2021-06-28 19:27:33 浏览次数:4 分类:技术文章

本文共 814 字,大约阅读时间需要 2 分钟。

144. 交错正负数

 
给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。

样例

样例 1
输入 : [-1, -2, -3, 4, 5, 6]
输出 : [-1, 5, -2, 4, -3, 6]
解释 : 或者仍和满足条件的答案

挑战

完成题目,且不消耗额外的空间。

注意事项

不需要保持正整数或者负整数原来的顺序。
 
 
public class Solution {
    /*
     * @param A: An integer array.
     * @return: nothing
     */
    public void rerange(int[] A) {
        int position = 0;
        int negative = 0;
        for (int v : A) {
            if (v < 0) {
                negative++;
            } else {
                position++;
            }
        }
        int j = 1;
        if (negative > position) {
            for (int i = 0; i < A.length; i = i + 2) {
                if (A[i] > 0) {
                    while (A[j] > 0) {
                        j += 2;
                        if (j >= A.length) j = 1;
                    }
//                    if (j >= A.length) break;
                    int temp = A[i];
                    A[i] = A[j];
                    A[j] = temp;
                }
            }
        } else {
            for (int i = 0; i < A.length; i = i + 2) {
                if (A[i] < 0) {
                    while (A[j] < 0) {
                        j += 2;
                        if (j >= A.length) j = 1;
                    }
//                    if (j >= A.length) break;
                    int temp = A[i];
                    A[i] = A[j];
                    A[j] = temp;
                }
            }
        }
    }
}
 

转载地址:https://blog.csdn.net/xwdrhgr/article/details/116005077 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:145. 大小写转换
下一篇:143. 排颜色 II

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月21日 15时05分31秒