数组奇偶索引交换有没有保持有序的解法

题目,对于一个数组[1,2,3,4,5,6,7],进行奇偶索引交换,希望偶数索引都在左侧,奇数索引在右侧,得到[1,3,5,7,2,4,6]。

快慢指针解法:按照快慢指针的思想,很容易有原地交换的写法:
    public static int[] oddEven2(int[] nums) {
        int n = nums.length;
        int l = 0;
        for (int i = 0; i < n; i++) {
            if (i % 2 == 0) {
                swap(nums, l++, i);
            }
        }
        return nums;
    }

疑问:这种交换打乱了奇数索引的顺序,有没有可以保持有序,又是原地的算法呢?
全部评论
请教大神指导
点赞 回复 分享
发布于 2024-12-28 16:40 北京

相关推荐

06-04 19:53
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务