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

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

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

    }

得到结果

相关推荐
小江的记录本1 分钟前
【MyBatis-Plus】MyBatis-Plus的核心特性、条件构造器、分页插件、乐观锁插件
java·前端·spring boot·后端·sql·tomcat·mybatis
小张会进步2 分钟前
数组:二维数组
java·javascript·算法
vx-程序开发9 分钟前
springboot在线装修管理系统-计算机毕业设计源码56278
java·c语言·spring boot·python·spring·django·php
大傻^13 分钟前
Spring AI Alibaba 可观测性实践:AI应用监控与链路追踪
java·人工智能·后端·spring·springaialibaba
云烟成雨TD18 分钟前
Spring AI Alibaba 1.x 系列【1】阿里巴巴 AI 生态
java·人工智能·spring
诗人不写诗21 分钟前
spring是如何组织切面的
java·后端·spring
大傻^1 小时前
Spring AI Alibaba Agent开发:基于ChatClient的智能体构建模式
java·数据库·人工智能·后端·spring·springaialibaba
li星野1 小时前
C++面试真题分享20260320
java·c++·面试
Irissgwe1 小时前
c++特殊类设计
java·开发语言·c++
大傻^1 小时前
Spring AI Alibaba ChatClient实战:流式输出与多轮对话管理
java·人工智能·后端·spring·springai·springaialibaba