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

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

例如数组 {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]);

    }

得到结果

相关推荐
程序员清风4 分钟前
Java 智能体开发:从对话接口到任务执行
java·人工智能·python
一 乐11 分钟前
博客管理系统|基于springboot + vue博客管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕设
QuZhengRong17 分钟前
【Spring】后端接收的请求参数多了一个逗号的处理办法
java·后端·spring
ZealSinger19 分钟前
Go1.25容器感知GOMAXPROCS避限流
java·开发语言
cxoptics26 分钟前
LBO 会不会潮解?存储、镀膜、日常使用注意事项?
java
SL_staff29 分钟前
非研发人员搭业务逻辑?先认清这3个可视化编程分水岭
java
王闯写bug31 分钟前
tomcat老版本下载tomcat8.5下载
java·tomcat
凤山老林36 分钟前
Spring Boot DDD 分层架构落地:领域模型、聚合根与事件驱动的业务实战
java·spring boot·架构
自强的小白38 分钟前
MYbatis-plus(自定义sql)
java·sql·mybatis
古法安卓39 分钟前
Android-Ext4文件系统问题排查
android·java·android studio