你能解释下面的代码是如何工作的吗?
main(O){10<putchar(4^--O?77-(15&5128>>4*O):10)&&main(2+O);}
Run Code Online (Sandbox Code Playgroud)
输出:
EMIL
Run Code Online (Sandbox Code Playgroud)
我有一个自编译opencv的问题...
XUbuntu 13.10 x64 gcc版本4.8.1
cmake -D WITH_TBB = ON -D BUILD_NEW_PYTHON_SUPPORT = ON -D WITH_V4L = ON -D INSTALL_C_EXAMPLES = ON -D INSTALL_PYTHON_EXAMPLES = ON -D BUILD_EXAMPLES = ON -D WITH_QT = ON -D WITH_OPENGL = ON -D WITH_OPENMP = ON ..
Everthing看起来很好.简单的例子将是有效的.我的问题是,我想在xubuntu中使用nonfree(SURF)包.
现在我想编译这些示例 http://docs.opencv.org/doc/tutorials/features2d/feature_detection/feature_detection.html 并得到此错误(主题)
g ++ -I/usr/local/include/opencv -I/usr/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length = 0 -MMD -MP -MF"example.d"-MT"示例.d"-o"example.o""../ example.cpp"完成建筑物:../ example.cpp
构建目标:SURF_Example调用:GCC C++链接器
g ++ -L/usr/local/lib -o"SURF_Example"./ example.o -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect -lopencv_nonfree
libopencv_features2d.so.2.4:添加符号时出错:命令行中缺少DSO
有帮助吗?
我应该如何将这段代码转换为伪代码?
ArrayList<Integer> check = new ArrayList<Integer>();
ArrayList<Integer> dup = new ArrayList <Integer> ();
ArrayList<Integer> nonDup = new ArrayList <Integer> ();
for (int i : listA) {
nonDup.add(i);
}
for (int i : listB) {
nonDup.add(i);
}
for (int i : listA) {
check.add(i);
}
for (int i : listB) {
if (check.contains(i)) {
dup.add(i);
nonDup.removeAll(duplicates);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何将for循环,add(),contains()和removeAll()方法转换为伪代码.
在Conway的生命游戏实现中优化返回单元格邻居数量的函数时遇到一些麻烦.我正在努力学习C并且只是在编码方面做得更好.我不是很擅长识别潜在的优化,我花了很多时间在线阅读各种方法,但它并没有真正点击我.
具体来说,我试图弄清楚如何以最有效的方式展开这个嵌套for循环,但每次我尝试我只是让运行时更长.我包括该功能,我认为不需要任何其他上下文.感谢您提出的任何建议!
这是countNeighbors()函数的代码:
static int countNeighbors(board b, int x, int y)
{
int n = 0;
int x_left = max(0, x-1);
int x_right = min(HEIGHT, x+2);
int y_left = max(0, y-1);
int y_right = min(WIDTH, y+2);
int xx, yy;
for (xx = x_left; xx < x_right; ++xx) {
for (yy = y_left; yy < y_right; ++yy) {
n += b[xx][yy];
}
}
return n - b[x][y];
}
Run Code Online (Sandbox Code Playgroud) 当我使用标准 SQL 在 BQ 上运行以下查询时,它表示运行时将处理 76.6TB
SELECT
event_time, user_id, activity_id,dbm_insertion_order_id, dbm_total_media_cost_usd
FROM `raw.5295.activity_*`
WHERE _PARTITIONTIME >(SELECT * FROM `analytics-dwh.autobidding.activity_list` )
AND timestamp_micros(event_time) > (SELECT timestamp_micros(MAX(event_time)) from `essence-analytics-dwh.ml_for_autobidding.nest_na_4q18_activity_updated_daily`)
AND _TABLE_SUFFIX IN ('25','20')
Run Code Online (Sandbox Code Playgroud)
表analytics-dwh.autobidding.activity_list只有一列,其中包含唯一的整数列表
如果我从上表中删除子查询,则该查询在运行时使用的内存将少于 500GB
SELECT
event_time, user_id, activity_id,dbm_insertion_order_id, dbm_total_media_cost_usd
FROM `raw.5295.activity_*`
WHERE _PARTITIONTIME >TIMESTAMP('2018-12-20')
AND timestamp_micros(event_time) > (SELECT timestamp_micros(MAX(event_time)) from `essence-analytics-dwh.ml_for_autobidding.nest_na_4q18_activity_updated_daily`)
AND _TABLE_SUFFIX IN ('25','20')
Run Code Online (Sandbox Code Playgroud)
为什么当我使用子查询时会发生这种情况?有解决方法吗?
我正在尝试开发一个Android应用程序,用户应该能够将图像从网格的一个单元格拖动到另一个单元格.为了实现这一点,我需要在Android 3.0中引入的拖放API,但我的应用程序应该在Android 2.2中运行.那么,有没有办法使用Touch事件实现这一点?如果是,那么请提供一些代码片段或简要介绍它的任何链接.
我有空格分隔的字符串,其中包含数字,如:
"abc123 ws32wd3 y3tg43 5tga89 a1a"
我必须解析字符串以获取每个标记的数字,然后总结从标记中提取的所有数字.我写了下面的代码,但我认为,如果有大字符串,那么可能存在性能问题.
所以,我的问题是:
我们如何在以下代码中提高性能?
我们是否有另一种方法来编写以下代码来解决问题?
码:
public class TestSum {
public static int doSum(String str){
String[] sArray = str.split(" ");
char[] chr = null;
String temp;
String number = "";
int sum=0;
for(String s : sArray){
chr = s.toCharArray();
for(char c : chr){
temp = String.valueOf(c);
if(isNum(temp)){
number = number + temp;
}
}
sum = sum + Integer.parseInt(number);
number="";
}
return sum;
}
public static boolean isNum(String nStr){
try{
Integer.parseInt(nStr);
return true;
}catch(NumberFormatException nfe){ …Run Code Online (Sandbox Code Playgroud) 让我们说有属性的Element类position.
public class Element {
private float position;
public float getPosition() {
return position;
}
public void setPosition(float position) {
this.position = position;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,还有ArrayList<Element> elements随机分配position值的保持元素.然后按位置值对元素进行升序排序.
问题:在一些位置区间内获取所有元素的最快方法是什么<a,b>,然后简单地迭代元素,如下所示:
for (Element element : elements) {
if (element.getPosition() > a && element.getPosition() < b) {
// Do something with an element.
}
}
Run Code Online (Sandbox Code Playgroud)
我假设有一种更快的方法,因为假设列表已经排序.
在一次采访中询问了这个问题.
对于给定的整数n> = 3,返回大小为2n的数组,使得从1到n的每个数字k恰好发生两次,并且每个数字和它的重复以等于该数字的距离分开.
功能签名:
int* buildArray(int n)
Run Code Online (Sandbox Code Playgroud)
例如,对于n = 3:
3, 1, 2, 1, 3, 2
Run Code Online (Sandbox Code Playgroud)
编号2:第一个位置3和第二个位置6,所以距离6 - 3 - 1 = 2.
编号3:第一个3位置1,第二个3位置5,距离5 - 1 - 1 = 3.
对于n = 4:
4, 1, 3, 1, 2, 4, 3, 2
Run Code Online (Sandbox Code Playgroud) 我试图证明可计算性的游戏是Dots和Boxes.
然而,我没有使用定理,而是试图通过创建一个AI,该游戏应该在该游戏中为玩家1或玩家2赢得100%的胜利.如果创造100%的胜利AI是不可能的,那么我的目标是创造一个至少比所有其他AI更好的.截至目前,我正在用PHP编写所有内容,因为我正在与另一个用脚本语言编写的AI竞争.
整个事情是递归的,基本逻辑是:计算所有可能移动的整个树如果是我的AI,那么为AI玩家选择具有最大点数的路线.如果是对手的AI,那么选择我的AI点数最少的路线.Aka计算每个节点的保证点数.
计算完整棵树后,选择保证点数最多的路线.在偶数点,随机挑选.
整个计算过程将大致永远地计算在15x15板上,但是现在我想要的是在3x3矩阵上计算它.我将为数据库中的前6-8个移动存储最佳移动,以便现在必须再次重新计算它们,这将每个计算的复杂性从24改变!到18!
这一切都可行吗?我计算动作的方式有问题吗?有一个更好的方法吗?
java ×3
algorithm ×2
c ×2
android ×1
arraylist ×1
c++ ×1
for-loop ×1
linker ×1
opencv ×1
optimization ×1
performance ×1
pseudocode ×1
search ×1
string ×1
subquery ×1