在保持数组中对应元素(包括负数和正数)各自组内顺序不变的情况下,交换数组中对应的负数和正数元素

给定一个数组,其中负元素个数等于正元素个数(顺序任意)。交换数组中第一个负元素和第一个正元素,然后交换第二个负元素和第二个正元素,依此类推

例如数组 {1, 2, 3, -4, 5, 6, -7, -8, -9, -10},我们把它变成 {-4, -7, -8, 1, -9, -10, 2, 3, 5, 6}

java 复制代码
    public static void main(String[] args) {


        int[] a = {1, 2, 3, -4, 5, 6, -7, -8, -9, -10};
        System.out.println("now:");
        for(int i = 0; i < 10; i++) System.out.printf("%d ", a[i]);

        int pos = -1, neg = -1;
        while(true) {
            while (++pos < 10 && a[pos] < 0) {}
            while (++neg < 10 && a[neg] > 0) {}
            if (pos >= 10 || neg >= 10) { break; }
            int temp = a[pos];
            a[pos] = -a[neg];
            a[neg] = -temp;
        }
        System.out.println("");
        System.out.println("after:");
        for(int i = 0; i < 10; i++) System.out.printf("%d ", -a[i]);

    }

得到结果

相关推荐
麻瓜code3 分钟前
【LeetCode】两数相加:模拟加法竖式,用进位 flag 一次遍历解决
java
zzzll11111 小时前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
lhldsg8 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都8 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒8 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye8 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!9 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
小荷才露尖尖角,早有蜻蜓立上头10 小时前
过滤器的4种创建方式
java
大圣编蚕10 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明10 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea