dart - Dart - 从变化的变量中添加常量值到列表
问题描述
我在将列表添加到列表时遇到问题。当我更改变量“行”时,添加到列表“pusta”的位置不会保持不变。结果应如下所示:[[0, 1, 2], [1, 2, 3], [2, 3, 4]]。我得到 [[2, 3, 4], [2, 3, 4], [2, 3, 4]]。我在 DartPad 中写作。我尝试在添加到列表时将行更改为字符串,但对 Codewars 的测试并未将其作为解决方案。
logisticMap(width, height, xs, ys) {
manhDist(width, height,xs,ys, pozx, pozy){
int x =0;
List<int> lista =[];
int i=0;
while(x<xs.length) {
num wart = (xs[x]-pozx).abs() + (ys[x]-pozy).abs();
lista.add(wart);
x++;
}
int minimum = lista[0];
while (i<lista.length) {
(lista[i]<minimum) ? minimum=lista[i] : minimum;
i++;
}
return minimum;
}
int i=0;
int j=0;
List<int> row =[];
List<List> pusta=[];
if (xs.isNotEmpty) {
while (i<height) {
row.clear();
while (j<width) {
row.add(manhDist(width, height, xs,ys,j,i));
j++;
}
j=0;
pusta.add(row);
i++;
}
return pusta;
} else {
while (j < height) {
row.clear();
while (i < width) {
row.add(null);
i++;
}
i = 0;
pusta.add(row);
j++;
}
return pusta;
}
}
void main() {
logisticMap(3, 3, [0], [0]);
}
我试图在其他用户代码中找到解决方案,但没有运气。不知道哪里不一样。他的代码工作:
List<List<int>> logisticMap(width,height,xs,ys) {
List<List<int>> result = [];
for (int i = 0; i < height; ++i) {
List<int> rowResult = [];
for (int j = 0; j < width; ++j) {
rowResult.add(closestSupplyPoint(xs, ys, j, i));
}
result.add(rowResult);
}
return result;
}
int closestSupplyPoint(xs, ys, x, y) {
int minDistance = null;
for (int i = 0; i < xs.length; ++i) {
int distance = (xs[i] - x).abs() + (ys[i] - y).abs();
if (minDistance == null || distance < minDistance) {
minDistance = distance;
}
}
return minDistance;
}
解决方案
推荐阅读
- javascript - 有没有办法以编程方式从 Google Drive 公共文件夹中读取图像的 URL?
- postgresql - 为什么我的脚本中的 psql 命令突然被 jenkins / hudson 杀死?
- swift - Swift & Firebase 无法分配“AuthDataResult”类型的值?键入“用户?
- heroku - Heroku 应用程序的自定义 google-domain 导致 IP/DNS 地址错误
- weblogic - oracle forms 12c安装问题
- android - 当用户从最近的应用程序中撤销操作系统已经破坏的活动时会发生什么?
- python - 操作数无法与形状一起广播 (128,) (0,) 错误
- java - EJB 及其依赖项中的 Jndi 查找
- python - 如何将字典列表写入 csv 并从 Python 中的 CSV 缓冲区创建 pandas 数据帧?
- javascript - 不聚 | 从提交的值中排除空表单字段