小编nub*_*ela的帖子

帮我调试这个没有编译错误但是没有按预期工作的代码块

我正在使用以下算法对此Sudoku Solver进行编码:

给定一个被认为是有效的数独谜题的网格,并且存在至少1个解决方案,它将找到第一个解决方案并将其返回.

拼图存储在代表9x9插槽的2D数组中.

如果解决方案不存在,则返回拼图[0] [0] = 0的拼图,否则拼图中的所有插槽都应填充值(1-9).

该算法是一种强制递归方法:

  1. 它逐行搜索拼图以获得单个插槽.
  2. 该方法possibleValuesInGrid()根据当前拼图及其现有值返回可适合插槽的可能值.
  3. 如果插槽中没有可能的值,则返回False(puzzle [0] [0] = 0)
  4. ELSE,它弹出LinkedList可能值中的一个值并插入到插槽中,并再次递归调用相同的方法,直到所有插槽都被填满.

代码是在pastebin上托管所以我不会泛滥这个页面.我怀疑某处可能存在逻辑错误,尽管它是一种强力方法,甚至是我似乎无法想象的错误.

我已经硬编码了一些系统打印行来读取逻辑错误,但是我无法弄清楚在哪里.

另外,它如何在[8] [4]停止也很好奇.

java

0
推荐指数
1
解决办法
196
查看次数

需要帮助理解指针和各种其他C的东西

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct dict_pair {
  void *key;
  void *value;
  struct dict_pair *tail;
} dict;


dict* NewDictionary(void) {
  dict *dictionary = malloc(sizeof(dict)); //or we can malloc(sizeof(struct dict_pair))
  dictionary->tail = NULL;
}

//dict operations
void put(dict *dictionary, void *key, void *value) {
  //new pair
  dict *new_pair = malloc(sizeof(dict));
  new_pair->key = key;
  new_pair->value = value;
  //chaining
  new_pair->tail = NULL;
  dict *last_node = dictionary;
  while (last_node->tail != NULL) {
    last_node = last_node->tail;
  }

  last_node->tail = new_pair;
}

void* get(dict …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
136
查看次数

如何使用其方法链接对象实例化?

例如这段代码:

new_log = ActivityLog(user=self.user,
                      activity=activity)
new_log.save()
Run Code Online (Sandbox Code Playgroud)

我可以将它链接到new_log = ActivityLog(...).save()?

我相信我尝试了上述内容,但它不起作用.有没有办法让它成为一个班轮?

python

0
推荐指数
1
解决办法
183
查看次数

如何获取路径的目录名称?

我尝试使用Path.GetDirectoryName()但它不起作用.

我想要的是来自/ home/nubela/test/some_folder,我想得到"some_folder"

我怎样才能做到这一点?该方法适用于Windows/Linux(Mono)

谢谢!

c# mono

0
推荐指数
1
解决办法
4074
查看次数

标签 统计

c ×1

c# ×1

java ×1

mono ×1

python ×1