You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组条件校验代码异常排查:符合条件元素计数结果不符

问题排查与修复提示

1. 数组越界访问(核心错误)

在check_cond_right_to_left函数中,循环初始值设置错误:

for (int i = N; i > cell_index; i--) {

数组的有效索引范围是0到N-1(当N=7时为0~6),这里i=N会直接访问array[7],属于越界访问,会读取到随机垃圾值,导致后续的search_cell_on_the_left检查必然失败,最终使整个元素判定为不满足条件。

修复方式:将循环初始值改为N-1:

for (int i = N - 1; i > cell_index; i--) {

2. 重复的函数声明

在函数声明区,check_cond_left_to_right被重复声明了两次:

bool check_cond_left_to_right(int array[], int cell_index);
bool check_cond_left_to_right(int array[], int cell_index); // 重复声明

虽然多数编译器会忽略这个问题,但为了代码规范性,应该删除其中重复的一行。

3. 验证逻辑与题目条件的匹配

结合你的示例输入,再确认条件逻辑:
示例输入的第4个元素(索引3),左侧元素为[38,79,38],右侧为[17,79,38]。按照题目要求的两个条件:

  • 条件1:左侧所有值都存在于右侧 → 左侧的38、79在右侧均有出现,满足;
  • 条件2:右侧所有值都存在于左侧 → 右侧的17在左侧没有出现,这与你说的“该元素符合条件”矛盾。

这里可能存在对题目条件的理解偏差:题目是否实际要求左侧出现的所有不同值都存在于右侧,右侧出现的所有不同值都存在于左侧?如果是这样,那左侧不同值为38、79,右侧不同值为38、79、17,依然不满足;或者你需要再确认题目要求或示例的正确性。如果是条件理解有误,可考虑改用集合统计左右的唯一值,再比较两个集合是否相等来调整验证逻辑。


内容的提问来源于stack exchange,提问作者Ori Yehuda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:05:18