小编Ank*_*kur的帖子

找出2d矩阵是否是另一个2d矩阵的子集

最近我参加了一个黑客马拉松,我开始了解一个试图在2d矩阵中找到网格形式的问题.一个模式可能是U,H和T,并将用3*3矩阵表示如果我想呈现H和U.

+--+--+--+            +--+--+--+
|1 |0 |1 |            |1 |0 |1 |
+--+--+--+            +--+--+--+
|1 |1 |1 |  --> H     |1 |0 |1 |    -> U
+--+--+--+            +--+--+--+
|1 |0 |1 |            |1 |1 |1 |
+--+--+--+            +--+--+--+
Run Code Online (Sandbox Code Playgroud)

现在我需要搜索到10*10 matrix containing 0s and 1s.Closest和唯一的解决方案我可以得到它的强力算法O(n ^ 4).在MATLAB和R这样的语言中有非常微妙的方法来做到这一点但不是在C,C++中.我尝试了很多在谷歌和SO上搜索这个解决方案.但我最接近的是这个SO POST,它讨论了实现Rabin-Karp字符串搜索算法.但是没有伪代码或任何帖子解释这个.可以任何人帮忙或者提供任何链接,pdf或一些逻辑来简化这个?

编辑

作为Eugene Sh.评论说如果N是大矩阵(NxN)的大小而k是小矩阵(kxk),则buteforce算法应该取O((Nk)^ 2).由于k是固定的,它减少到O(N ^ 2).是绝对正确的.但如果N和K很大,有没有任何一般化的方法?

c c++ algorithm matrix

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

即使在关闭android工作室之后,Gradle仍然将Java留作进程

在Mac系统上,每当我关闭android工作室时,它都会离开java进程并且java进程继续运行并继续占用ram内存.如果你看到java进程占用1gb ram,那么只有4gb的mac有时会很痛苦 在此输入图像描述

在此输入图像描述

android studio中是否有任何选项,以便我退出所有与之相关的进程应该关闭或任何我可以运行清理的命令?

java android gradle android-studio

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

gcc中的全局寄存器变量

最近我在一次采访中被问到全局寄存器变量.我搞砸了说任何全局变量都将存储在数据段中.但后来我被问及GCC.在采访后我得出结论gcc支持全局寄存器变量.

#include<stdio.h>

register int var asm("ebx");  //storing global variable in register explicitly

int main(void)
{
.......
}
Run Code Online (Sandbox Code Playgroud)

这是链接 https://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.html#Global-Reg-Vars

但现在我对它的生命周期和范围感到困惑,它是否会作为普通的全局变量或寄存器变量工作?gcc上还有任何方法或命令,以便我们确保编译器不会简单地忽略register关键字并将存储在实际的寄存器中吗?

c gcc

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

多继承中构造函数调用的顺序

我试图找到很多,如果只有一个类在多重继承中变成虚拟的话?在这种情况下,构造函数调用的行为对我来说并不清楚.比如说代码 -

#include<iostream>
using namespace std;
class grand{
public:
    grand(){cout<<"grandfather"<<endl;}
};
class parent1:virtual public grand{   //virtual used only here
public:
    parent1(){cout<<"parent1 "<<endl;}
};
class parent2: public  grand{
public:
    parent2(){cout<<"parent2"<<endl;}
};
class child:public parent1,public parent2{
public:
    child(){cout<<"child"<<endl;}
};
int main()  {
    child s;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码的输出如下

grandfather
parent1 
grandfather
parent2
child
Run Code Online (Sandbox Code Playgroud)

但是在上面的代码中如果我们改变这个

class parent1:virtual public grand{
public:
    parent1(){cout<<"parent1 "<<endl;}
};
class parent2: public  grand{
public:
    parent2(){cout<<"parent2"<<endl;}
};
Run Code Online (Sandbox Code Playgroud)

对此

class parent1:public grand{   //virtual removed from here
public:
    parent1(){cout<<"parent1 "<<endl;} …
Run Code Online (Sandbox Code Playgroud)

c++ oop constructor multiple-inheritance

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

api获取浏览器中安装的扩展列表

我正在开发chrome和safari的扩展程序。此应用程序的一个步骤是获取所有已安装的扩展程序。是否有任何可以提供已安装扩展程序列表的safari或chrome api?在Safari浏览器中安装了扩展程序,~/Library/Safari/Extensions/Extensions.plist但我找不到任何相关的api。

javascript safari google-chrome google-chrome-extension safari-extension

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