S*r
2 楼
三国里说吕布的武力值相当强,单挑刘关张三兄弟都能赢,曾经怀疑过这是不是有点夸
张了,历史上真正的吕布单挑有这么厉害么,先不说张飞和刘备,关羽的武力值可并不
差啊,不过看过一些历史资料后,发现吕布的实力确实不能小看。
翻阅过一些三国正史,里面说吕布的武力值确实强,但是此人属于有勇无谋,并且胸无
大志,就是个及时享乐的类型,每天喜欢沉迷于酒色之中,要不是他喜欢酒色,就不至
于上当被貂蝉这个美女给迷惑杀了董卓了。
吕布这个人的情绪化也很严重,总是反复无常,并且占领了一块地方,就不想去占领更
多的了,也不想称王,就想在自己的这块地方上享受,跟曹操刘备孙权的称帝之野心是
不能相比的,所以吕布最终还是变成了曹操的阶下囚。
本来曹操还看中了吕布的武力值,想要拿来作为自己的下属,可是刘备担心吕布活着会
影响自己的利益,就提醒曹操说,吕布杀了自己两个义父,于是乎吕布被杀。
这样的一个人也是挺悲剧的,空有一身好本领,却是一介莽夫而已,就算真的能单挑干
过刘关张三兄弟,也还是难成大器。
张了,历史上真正的吕布单挑有这么厉害么,先不说张飞和刘备,关羽的武力值可并不
差啊,不过看过一些历史资料后,发现吕布的实力确实不能小看。
翻阅过一些三国正史,里面说吕布的武力值确实强,但是此人属于有勇无谋,并且胸无
大志,就是个及时享乐的类型,每天喜欢沉迷于酒色之中,要不是他喜欢酒色,就不至
于上当被貂蝉这个美女给迷惑杀了董卓了。
吕布这个人的情绪化也很严重,总是反复无常,并且占领了一块地方,就不想去占领更
多的了,也不想称王,就想在自己的这块地方上享受,跟曹操刘备孙权的称帝之野心是
不能相比的,所以吕布最终还是变成了曹操的阶下囚。
本来曹操还看中了吕布的武力值,想要拿来作为自己的下属,可是刘备担心吕布活着会
影响自己的利益,就提醒曹操说,吕布杀了自己两个义父,于是乎吕布被杀。
这样的一个人也是挺悲剧的,空有一身好本领,却是一介莽夫而已,就算真的能单挑干
过刘关张三兄弟,也还是难成大器。
S*o
3 楼
http://www.qidian.com/BookReader/1880844,31473288.aspx
自寻道,向前找,自有人间道,水和山走了多少数不着
天不老,保我家乡永远的好
看尽尽是青山,青山处处是雨箭风刀
故园路,怎么是走不尽长路
道人道,道神道,自求人间道,妖与魔都说自己好
风疾雷暴,天地鬼哭神号
旧日江山为什么变成了血海滔滔
故园路,怎么是不归路
问人间,到底道在那里找
自寻道,向前找,自有人间道,水和山走了多少数不着
天不老,保我家乡永远的好
看尽尽是青山,青山处处是雨箭风刀
故园路,怎么是走不尽长路
道人道,道神道,自求人间道,妖与魔都说自己好
风疾雷暴,天地鬼哭神号
旧日江山为什么变成了血海滔滔
故园路,怎么是不归路
问人间,到底道在那里找
t*r
4 楼
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (!str){return 0;}
int i=0;
bool pos=true;
int res=0;
while (str[i]==' '){ i++;}
if (str[i]=='+'){ pos=true;i++;}
if (str[i]=='-'){ pos = false;i++;}
if (!isdigit(str[i])){return 0;}
while (isdigit(str[i])){
if (pos && res>INT_MAX/10){return INT_MAX;}
if (pos && res==INT_MAX/10 && int(str[i]-'0')>=7){return INT_MAX;}
if (!pos && -res if (!pos && -res==INT_MIN/10 && int(str[i]-'0')>=8){return INT_
MIN;}
res = res*10 + int(str[i]-'0');
i++;
}
if (pos){return res;}
else{return -res;}
}
会了atoi走遍天下都不怕
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (!str){return 0;}
int i=0;
bool pos=true;
int res=0;
while (str[i]==' '){ i++;}
if (str[i]=='+'){ pos=true;i++;}
if (str[i]=='-'){ pos = false;i++;}
if (!isdigit(str[i])){return 0;}
while (isdigit(str[i])){
if (pos && res>INT_MAX/10){return INT_MAX;}
if (pos && res==INT_MAX/10 && int(str[i]-'0')>=7){return INT_MAX;}
if (!pos && -res
MIN;}
res = res*10 + int(str[i]-'0');
i++;
}
if (pos){return res;}
else{return -res;}
}
会了atoi走遍天下都不怕
S*i
6 楼
吕布挑不过赵云吧
f*g
7 楼
faint,就一章刚开始就推啊,这也太粉丝了。
知秋怎么也开始弄仙侠了,这世道。。。
【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找
知秋怎么也开始弄仙侠了,这世道。。。
【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找
T*c
10 楼
我靠,知秋怎么也写仙侠啊
纠结,太纠结了,lol
纠结,太纠结了,lol
t*t
11 楼
我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
提高400%以上...
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
提高400%以上...
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
a*e
13 楼
这位同学基本功还需要加强啊... 先写个 integer 的 regular expression 来看看,
就知道错在哪里了。
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
就知道错在哪里了。
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
d*i
15 楼
你这个把很多边角情况考虑了,zlike要的版本可能不需要那么复杂,另外你的code有
错,cast的时候应当是res = res*10 + (int)(str[i]-'0'); 其实也不需要cast,char
自动promote成int.
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
错,cast的时候应当是res = res*10 + (int)(str[i]-'0'); 其实也不需要cast,char
自动promote成int.
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
n*t
17 楼
str[i] 的写法累赘了,直接 *str
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
o*l
18 楼
养肥了再开始看
【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找
【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找
l*d
20 楼
张学友的歌词啊。
b*s
21 楼
我觉得你放弃c++改java是正确的
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
g*g
24 楼
不知道是不是想写 月落那样游历西方的。
r*t
26 楼
凡人就是当代的大法师
d*d
30 楼
秋姐。。。
d*i
38 楼
我搞错了这两个是等价的。但是用指针的方式access array比用array的方式快这在以
前的编译器确实是这样的。
http://stackoverflow.com/questions/2305770/efficiency-arrays-vs
【在 t****t 的大作中提到】
: a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.
:
: +
前的编译器确实是这样的。
http://stackoverflow.com/questions/2305770/efficiency-arrays-vs
【在 t****t 的大作中提到】
: a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.
:
: +
L*e
54 楼
如果说不是随着要处理的文件size的增加,效率比越来越大的话,那么两个code在算法
上应该没有根本区别。通配的function比较慢通常是因为要handle的case比较多,可能
会做一些额外的处理。而你搜来的code只需要能handle你需要handle的case就可以了。
。。
如果真的是算法上的提高,可以去要求update标准的function。。。
始就
★ 发自iPhone App: ChineseWeb 8.2.2
【在 t****t 的大作中提到】
: 我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
: 拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
: 提高400%以上...
上应该没有根本区别。通配的function比较慢通常是因为要handle的case比较多,可能
会做一些额外的处理。而你搜来的code只需要能handle你需要handle的case就可以了。
。。
如果真的是算法上的提高,可以去要求update标准的function。。。
始就
★ 发自iPhone App: ChineseWeb 8.2.2
【在 t****t 的大作中提到】
: 我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
: 拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
: 提高400%以上...
t*t
89 楼
http://code.google.com/p/retrobsd/source/browse/trunk/src/libc/
.c?spec=svn509&r=509
【在 T********i 的大作中提到】
: Thrust,
: 能不能share一下你在网上搜到的code? 我看看是不是比我现在用的快?
:
: 始就
.c?spec=svn509&r=509
【在 T********i 的大作中提到】
: Thrust,
: 能不能share一下你在网上搜到的code? 我看看是不是比我现在用的快?
:
: 始就
D*r
90 楼
我也来抄写一遍:(擦,写了半个小时放弃了,又要判断是不是负数,又要判断上下界
,记不住interger的上下界macro,超出上下界还得返回errno,需要exit么?。面试挂
了。)
int atoi(const char *str) {
int i, result, t;
char* p;
if (!str) return 0;
i = 0;
result = 0;
t = 0;
p = str;
while (*p) {
t = (int)(p[i]-'0');
if (!isdigit(t)) return -1;
result = result * 10 + t;
}
}
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
,记不住interger的上下界macro,超出上下界还得返回errno,需要exit么?。面试挂
了。)
int atoi(const char *str) {
int i, result, t;
char* p;
if (!str) return 0;
i = 0;
result = 0;
t = 0;
p = str;
while (*p) {
t = (int)(p[i]-'0');
if (!isdigit(t)) return -1;
result = result * 10 + t;
}
}
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
g*i
92 楼
哈哈,好久不做了,再来重新找找感觉
T*i
93 楼
多谢thrust。我曾经自己做了个类似的。
我还做了个encoding的。
size_t Convert::encodeFloatValue(double value, char *buffer) {
char floatBuffer[FLOAT_BUFFER_LEN];
int dec, sign;
int result;
#if defined(_MSC_VER)
result = _ecvt_s(floatBuffer, FLOAT_BUFFER_LEN, value, 15, &dec, &
sign);
return ecvtBuffer2String(floatBuffer, buffer, dec, sign);
#else
char *ret = ecvt(value, 15, &dec, &sign);
return ecvtBuffer2String(ret, buffer, dec, sign);
#endif
}
ecvtBuffer2String的原理和这个decoder类似。
【在 t****t 的大作中提到】
: http://code.google.com/p/retrobsd/source/browse/trunk/src/libc/
: .c?spec=svn509&r=509
我还做了个encoding的。
size_t Convert::encodeFloatValue(double value, char *buffer) {
char floatBuffer[FLOAT_BUFFER_LEN];
int dec, sign;
int result;
#if defined(_MSC_VER)
result = _ecvt_s(floatBuffer, FLOAT_BUFFER_LEN, value, 15, &dec, &
sign);
return ecvtBuffer2String(floatBuffer, buffer, dec, sign);
#else
char *ret = ecvt(value, 15, &dec, &sign);
return ecvtBuffer2String(ret, buffer, dec, sign);
#endif
}
ecvtBuffer2String的原理和这个decoder类似。
【在 t****t 的大作中提到】
: http://code.google.com/p/retrobsd/source/browse/trunk/src/libc/
: .c?spec=svn509&r=509
g*g
95 楼
我来贴标准答案了。把radix hardcode成10就行。
public static int More ...parseInt(String s, int radix)
440 throws NumberFormatException
441 {
442 if (s == null) {
443 throw new NumberFormatException("null");
444 }
445
446 if (radix < Character.MIN_RADIX) {
447 throw new NumberFormatException("radix " + radix +
448 " less than Character.MIN_
RADIX");
449 }
450
451 if (radix > Character.MAX_RADIX) {
452 throw new NumberFormatException("radix " + radix +
453 " greater than Character.MAX
_RADIX");
454 }
455
456 int result = 0;
457 boolean negative = false;
458 int i = 0, len = s.length();
459 int limit = -Integer.MAX_VALUE;
460 int multmin;
461 int digit;
462
463 if (len > 0) {
464 char firstChar = s.charAt(0);
465 if (firstChar < '0') { // Possible leading "-"
466 if (firstChar == '-') {
467 negative = true;
468 limit = Integer.MIN_VALUE;
469 } else
470 throw NumberFormatException.forInputString(s);
471
472 if (len == 1) // Cannot have lone "-"
473 throw NumberFormatException.forInputString(s);
474 i++;
475 }
476 multmin = limit / radix;
477 while (i < len) {
478 // Accumulating negatively avoids surprises near MAX_
VALUE
479 digit = Character.digit(s.charAt(i++),radix);
480 if (digit < 0) {
481 throw NumberFormatException.forInputString(s);
482 }
483 if (result < multmin) {
484 throw NumberFormatException.forInputString(s);
485 }
486 result *= radix;
487 if (result < limit + digit) {
488 throw NumberFormatException.forInputString(s);
489 }
490 result -= digit;
491 }
492 } else {
493 throw NumberFormatException.forInputString(s);
494 }
495 return negative ? result : -result;
496 }
public static int More ...parseInt(String s, int radix)
440 throws NumberFormatException
441 {
442 if (s == null) {
443 throw new NumberFormatException("null");
444 }
445
446 if (radix < Character.MIN_RADIX) {
447 throw new NumberFormatException("radix " + radix +
448 " less than Character.MIN_
RADIX");
449 }
450
451 if (radix > Character.MAX_RADIX) {
452 throw new NumberFormatException("radix " + radix +
453 " greater than Character.MAX
_RADIX");
454 }
455
456 int result = 0;
457 boolean negative = false;
458 int i = 0, len = s.length();
459 int limit = -Integer.MAX_VALUE;
460 int multmin;
461 int digit;
462
463 if (len > 0) {
464 char firstChar = s.charAt(0);
465 if (firstChar < '0') { // Possible leading "-"
466 if (firstChar == '-') {
467 negative = true;
468 limit = Integer.MIN_VALUE;
469 } else
470 throw NumberFormatException.forInputString(s);
471
472 if (len == 1) // Cannot have lone "-"
473 throw NumberFormatException.forInputString(s);
474 i++;
475 }
476 multmin = limit / radix;
477 while (i < len) {
478 // Accumulating negatively avoids surprises near MAX_
VALUE
479 digit = Character.digit(s.charAt(i++),radix);
480 if (digit < 0) {
481 throw NumberFormatException.forInputString(s);
482 }
483 if (result < multmin) {
484 throw NumberFormatException.forInputString(s);
485 }
486 result *= radix;
487 if (result < limit + digit) {
488 throw NumberFormatException.forInputString(s);
489 }
490 result -= digit;
491 }
492 } else {
493 throw NumberFormatException.forInputString(s);
494 }
495 return negative ? result : -result;
496 }
c*3
96 楼
要考虑到这么多cases,只好挂了。
【在 g*****g 的大作中提到】
: 我来贴标准答案了。把radix hardcode成10就行。
: public static int More ...parseInt(String s, int radix)
: 440 throws NumberFormatException
: 441 {
: 442 if (s == null) {
: 443 throw new NumberFormatException("null");
: 444 }
: 445
: 446 if (radix < Character.MIN_RADIX) {
: 447 throw new NumberFormatException("radix " + radix +
【在 g*****g 的大作中提到】
: 我来贴标准答案了。把radix hardcode成10就行。
: public static int More ...parseInt(String s, int radix)
: 440 throws NumberFormatException
: 441 {
: 442 if (s == null) {
: 443 throw new NumberFormatException("null");
: 444 }
: 445
: 446 if (radix < Character.MIN_RADIX) {
: 447 throw new NumberFormatException("radix " + radix +
S*A
97 楼
如果有速度区别那个是很弱的编译器了。
在 LLVM 里面指针和数组的内部表示是一样的。
你做这样的编译测试还要加上 -O2 之类的。
【在 d****i 的大作中提到】
: 我搞错了这两个是等价的。但是用指针的方式access array比用array的方式快这在以
: 前的编译器确实是这样的。
: http://stackoverflow.com/questions/2305770/efficiency-arrays-vs
在 LLVM 里面指针和数组的内部表示是一样的。
你做这样的编译测试还要加上 -O2 之类的。
【在 d****i 的大作中提到】
: 我搞错了这两个是等价的。但是用指针的方式access array比用array的方式快这在以
: 前的编译器确实是这样的。
: http://stackoverflow.com/questions/2305770/efficiency-arrays-vs
S*A
98 楼
你其实不应该用 isdigit()。
isdigit() 和当前的 local 有关系。
完全有可能在个奇葩的 local 里面把类似 “一二”
这样的本土语言数字返回真,你的程序就彻底歇菜了。
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
isdigit() 和当前的 local 有关系。
完全有可能在个奇葩的 local 里面把类似 “一二”
这样的本土语言数字返回真,你的程序就彻底歇菜了。
【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}
相关阅读
seq-to-seq model的参数share吗?visjs点和线一多就特别慢,有更好的画图库吗Angularjs + Spark ?Angular 2 component/module 相对应c++里是什么?tensorflow基本上就石狗家的闲的无所事事的储备军搞的东西比较spring-boot 和 node.jsCSS坑真多一个python编程问题看了大家对blockchain讨论,想起了git刚刚上了一下machine learning一个课程,大家看看觉得怎样iterm2 windows alternative会用c#/python program MSSql, Excel, 从网上抓数据,合适做啥工作?Peter Norvig说编程竞赛强与工作干的好成反比 (转载)请问,有没有一种算法或者软件可以youtube search by content?如何train small object detection关于刷题面试,clojure动态图怎样能在网上找到计算机类的工作? (转载)block chain科普podcast看了一下vue,感觉就是angularjs的弟弟