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

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

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

    }

得到结果

相关推荐
我命由我123454 分钟前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
2601_963869958 分钟前
【计算机毕业设计】基于Java的潮牌购物网站系统的设计与实现
java·开发语言·课程设计
203号居民15 分钟前
LeetCode hot 100 —560. 和为 K 的子数组
java·算法·leetcode
浪客川34 分钟前
使用 IDEA 生成API文档
java·ide·intellij-idea
上下求索,莫负韶华1 小时前
笔记-数据库事务和java事务和切面
java·数据库·笔记
@小匠1 小时前
Spring Boot Nacos绑定 Map 时中文 key 导致启动失败:一次从复现到源码的排查实录
java·开发语言·前端
Knight_AL1 小时前
Lombok @Builder 踩坑:build() 前后对象类型不一样
android·java·开发语言
SamChan902 小时前
PDF翻译中的并发控制:用Semaphore防止API限流与资源耗尽
java·jvm·pdf
大黄说说2 小时前
Java 与 Kotlin 混合开发避坑指南:老项目平滑迁移 Kotlin 实操手册
java·开发语言·kotlin
snow@li3 小时前
SpringBoot:AOP日志切面全景梳理/原理+流程+实战+避坑
java·开发语言·spring boot