如何修改二维数组生成逻辑以获取黄色高亮序列?技术求助
问题分析与修复方案
你之前写的蓝色高亮序列是标准乘法表,每个位置的值是(行号+1)*(列号+1)(行、列从1开始计数)。你试的(innerLoopCounter +10)-2其实就是innerLoopCounter +8,生成的是每行从8到19的固定递增序列,显然和目标黄色序列不匹配。
因为看不到你说的附图,我结合常见的表格高亮场景,给几种典型黄色序列的实现代码,你可以对照附图对应:
情况1:固定某一行的序列
比如黄色高亮是第10行(对应代码里的outerLoopCounter=9,因为索引从0开始),值为10乘以列号:
int currentElement; if (outerLoopCounter == 9) { currentElement = 10 * (innerLoopCounter + 1); } else { currentElement = (outerLoopCounter + 1) * (innerLoopCounter + 1); // 保留原蓝色序列逻辑 }
情况2:固定某一列的序列
比如黄色高亮是第9列(对应innerLoopCounter=8),值为行号乘以9:
int currentElement; if (innerLoopCounter == 8) { currentElement = (outerLoopCounter + 1) * 9; } else { currentElement = (outerLoopCounter + 1) * (innerLoopCounter + 1); }
情况3:主对角线序列
如果黄色高亮是行号等于列号的对角线位置,值为行号(或列号)的平方:
int currentElement; if (outerLoopCounter == innerLoopCounter) { currentElement = (outerLoopCounter + 1) * (outerLoopCounter + 1); } else { currentElement = (outerLoopCounter + 1) * (innerLoopCounter + 1); }
情况4:反向列的乘法序列
如果黄色序列是每行列号倒序的乘法结果,比如第1列是12倍行号,第2列是11倍行号:
currentElement = (outerLoopCounter + 1) * (12 - innerLoopCounter);
要是这些都不对,你可以把附图里黄色序列的规律说清楚(比如哪些位置是黄色、值的变化趋势、和行列的关系),我再给你写精准的代码。
内容的提问来源于stack exchange,提问作者aigonline
相关产品推荐
相关产品推荐

