小编And*_*rty的帖子

如何从数组中删除最后一个元素?

现在我正在使用递归回溯,我的任务是找到迷宫中最长的路径,质量表示为用坐标覆盖的字段,并且墙壁的坐标在文件中是酸痛的.我已经制作了一个解析器来解析输入文件并构建墙,但是我还将这个坐标存储在一个对象类型Coordinate的数组中,以检查是否有可能在下一个上移动下一段"蛇"字段,然后我创建了这个方法,现在我已经明白我需要一个方法来从数组中删除最后一个坐标,当我使用回溯时,我该怎么办?目标不是使用数组列表或链表只有数组!谢谢!

public class Coordinate {
int xCoord;
int yCoord;

 Coordinate(int x,int y) {
     this.xCoord=x;
     this.yCoord=y;
 }

 public int getX() {
     return this.xCoord;
 }

 public int getY() {
     return this.yCoord;
 }
 public String toString() {
     return this.xCoord + "," + this.yCoord;

 }

 }
Run Code Online (Sandbox Code Playgroud)

public class Row {
static final int MAX_NUMBER_OF_COORD=1000;

Coordinate[] coordArray;
int numberOfElements;


Row(){
    coordArray = new Coordinate[MAX_NUMBER_OF_COORD];
    numberOfElements=0;

   }


void add(Coordinate toAdd) {
    coordArray[numberOfElements]=toAdd;
    numberOfElements +=1;
}
boolean ifPossible(Coordinate c1){
    for(int i=0;i<numberOfElements;i++){

        if(coordArray[i].xCoord==c1.xCoord && coordArray[i].yCoord==c1.yCoord){
                return false; …
Run Code Online (Sandbox Code Playgroud)

java arrays recursion backtracking

12
推荐指数
1
解决办法
5万
查看次数

DispatchQueue 是否在自己的线程中运行?

我试图了解DispatchQueues真正的工作原理,我想知道假设DispatchQueues有自己的管理线程是否安全?例如,让我们以串行队列为例。根据我的理解 - 由于它是串行的,因此新任务只能在当前任务结束后才能启动,因此“某人”必须将新任务从队列中出队并提交执行!因此,基本上看来队列必须离开自己的线程,该线程将分派存储在队列中的任务。这是正确的还是我误解了什么?

grand-central-dispatch swift dispatch-queue

3
推荐指数
1
解决办法
2045
查看次数

Kotlin 作用域函数实际上是 Java 匿名类?

我目前正在开发一些旧的 Java 编写的 Android 项目,但正在用 Kotlin 编写我不太熟悉的新部分。我需要某种方法来解包可为空的对象(类似于if let unwrappedMyVar = myVar else {}Swift 中的),为此我使用了myVar?.let {}作用域函数,该函数解包myWar并执行块,以防它不为空。但是现在我真的很好奇这些作用域函数是如何在 Kotlin 中实现的,它们实际上是编译成 Java 匿名类的吗?如果是这样,那么它可能会导致与 Java 匿名类相同的问题。而且很容易造成泄漏
谢谢!
亲切的问候,
安德烈

java jvm kotlin

2
推荐指数
1
解决办法
70
查看次数

动态分配的字符串填充了字符,结果为空字符串C.

int main(){
    char *c=(char*)malloc(4*sizeof(char));
    *c='a';
    c++;
    *c='b';
    c++;
    *c='c';
    c++;
    *c='\0';
    printf("%s",c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以打印每个单个字符(例如printf("%c",*(--c));),但是当我尝试使用printf("%s",c);该程序打印整个字符串时,什么都不打印!为什么会这样?

c memory string malloc

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