From 4072d32ab336f4523489537e5fe8c5e935f77450 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:00 +0800 Subject: [PATCH] =?UTF-8?q?Update=2021.=20=E8=B0=83=E6=95=B4=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E9=A1=BA=E5=BA=8F=E4=BD=BF=E5=A5=87=E6=95=B0=E4=BD=8D?= =?UTF-8?q?=E4=BA=8E=E5=81=B6=E6=95=B0=E5=89=8D=E9=9D=A2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充数组含负数时奇偶判断条件及死循环边界情况的说明。 --- notes/21. 调整数组顺序使奇数位于偶数前面.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/notes/21. 调整数组顺序使奇数位于偶数前面.md b/notes/21. 调整数组顺序使奇数位于偶数前面.md index 8dadf38c..cc987402 100644 --- a/notes/21. 调整数组顺序使奇数位于偶数前面.md +++ b/notes/21. 调整数组顺序使奇数位于偶数前面.md @@ -16,6 +16,8 @@ 使用首尾双指针,左指针寻找偶数,右指针寻找奇数,找到后交换位置。时间复杂度 O(N),空间复杂度 O(1)。 +需要注意的是,题目保证元素非负,所以可以用 x % 2 == 1 判断奇数。数组中有负数时,Java 中 -3 % 2 等于 -1,负奇数在两个判断中都不成立,例如 [-3, 2, -1] 会让两个指针停在原地反复交换而死循环,这时要改用 x % 2 != 0。 + ```java public int[] trainingPlan(int[] actions) { int i = 0, j = actions.length - 1;