w***y 发帖数: 78 | 1 If your func modifies the content of the string, then it is incorrect to
provide a constant default parameter.
If your func does not modify the content of the string, then it doesn't hurt
to declare the parameter as constant. Your func will still happily accept a
non-constant char *. |
|
b*******e 发帖数: 34 | 2 How many constructor (including copy constructor) and destructors will be
called for test1 and test2?
Test1:3 constructors and destructors
Step-1 Default constructor will be called at Base a;
Step-2 Copy constructor will be called when passing a as formal parameter i.
e func(a).
Step-3 Copy constructor will be called for return object.
Step-4 Destructor will be called for actual parameter of func.
Step-5 Now this return obj will act as nameless obj in test1() and will get
destroy after line func |
|
i*****f 发帖数: 578 | 3 This decorator definition seems not make sense to me.
From your dec. definition, it's obvious it takes two arguments: func, aa. So:
@decorator
def f():
...
is transformed to:
decorator(func, aa)(f)
Your decorator is **got** to take exactly two arguments. If this is the case
, seems that the wrapper is not doing what you want.
Are you trying to do something like:
def decorator(aa):
def outer_wrapper(func):
def wrapper(*args, **argd):
if |
|
i*****n 发帖数: 36 | 4 我想在c++ 里做optimization, 在网上找到如下的struct template, 只要自己写一个
函数
funcc 作为objective function就可以。 可是一直没有明白 class T 应该设成什么
。
比如说
double funcc(double a);
这时 class T 应写成什么呢? 多谢!
template
struct Funcd {
Doub EPS;
T &func;
Doub f;
Funcd(T &funcc) : EPS(1.0e-8), func(funcc) {}
Doub operator() (VecDoub_I &x)
{
return f=func(x);
}
void df(VecDoub_I &x, VecDoub_O &df)
{
Int n=x.size();
VecDoub xh=x;
Doub fold=f;
for (Int j= |
|
b*******t 发帖数: 34 | 5 新手问个问题。下面的PYTHON程序
在decorator里面是怎么绑定的? 这个程序里
n <---5
func <---LLL
args,kwds <--- a,b (or 1,1)
是什么样的规则?
========================
> cat a.py
def XXX(n):
def Wrapper (func):
def S(*args,**kwds):
for i in xrange(n):
print 20+func(*args, **kwds), ","
return S
return Wrapper
@XXX(5)
def LLL(a,b):
return a+b+1
print LLL(1,1)
========================
》python a.py
23 ,
23 ,
23 ,
23 ,
23 ,
None |
|
t**r 发帖数: 3428 | 6 抛开applicative functor, monad 这些先不说
. func composition
$ func application
` func name in middle
还有最基本的
::
->
=>
还有默认的 right-associative.
导致的结果就是: 写代码不容易,读代码更难。
保守的不看好这个语言,虽然很多牛逼概念和实现。 |
|
z****e 发帖数: 54598 | 7 一般oop里面当func部分和实体部分分离之后
实体部分一般不会用interface,ejb用过,吃饱了撑着
entitybean,所以挂了,大多数时候都是pojo和set/get方法
只有func部分才需要interface,那这块跟fp就很接近了
func套的object只是一个name space而已了
所以fp和oop一个显著区别就是object或者class这个东西允许不允许存在
这个没啥好争论的,swift就有,clj就没有(除了java部分,这个没办法)
这个才是从语法上最大的差异,而不是故意混淆protocol和interface
看来hci的java基础不行啊,这10多年java都在写啥东西? |
|
z****e 发帖数: 54598 | 8 基础的func在幼儿园就教了
阿姨给你一个苹果,你自己有一个苹果,你一共几个苹果啊?
但是这改变不了小学二年级大多数人都能轻松理解并掌握变量这个东西的事实
independent很重要,理解不理解lambda跟理解var无关
fp里面这都是information,相互独立,切记
一个人吃了饭之后就是另外一个人了,所以这个人学习func的时候
跟他学习var的时候不可能是一个人,这两个概念在不同的时期教的
除非你告诉我这个人是一个object
有不同的状态,那能够理解func,然后iq不够,理解不了var
这还比较make sense,你选择吧 |
|
z****e 发帖数: 54598 | 9 不是
我的意思是在这个时候,fp应该能够体现出比oop更为高效的地方才对
比如
func1(MyObject obj)
func2(MyObject obj)
func3(MyObject obj)
func4(MyObject obj)
func5(MyObject obj)
func6(MyObject obj)
...
这个时候,因为MyObject结构都是一样的
所以就很容易叠加各种函数
以及对函数做归类,整理,都很容易
但是如果这个时候MyObject的结构改变了
那你就得对这一通函数一顿改
麻烦死你,而且最痛苦的是
这些func可能放在不同的地方,那找起来就麻烦了
所以要控制数据结构数量
最好都是map&list,这样基本上没啥好改的
如果是oop
那是这样
MyObj1.func1
MyObj1.func2
MyObj2.func2
MyObj3.func3
...
本身func不是1st class,所以从属于object
而改动其中一个obj,不会影响到其他obj,所以加减obj就很容易
也很自然,你要改其中任何一个obj的结构也相对容易
尤其是如果这个obj的方法只... 阅读全帖 |
|
f*******t 发帖数: 7549 | 10 如果不往FP上靠,基本上只有一种写法。
type If interface {
func Foo() (Result, error)
}
type Impl struct {
}
func (i *Impl) Foo() (Result, error) {
...
}
我刚上手时概念混乱了好久。读别人的go代码,传object参数一般写指针,但如果是接
口,就不带那个*。
例子:
func Bar(i If) {
res, err := i.Foo()
...
}
i := Impl{}
Bar(&i)
后来我才理解,由于duck typing的存在,真正继承If的不是Impl,而是*Impl。实际应
用中会用这种写法避免object的复制(go是pass by value)。 |
|
f*******t 发帖数: 7549 | 11 可以通过这种方式实现default implementation吧:
type If interface {
func Foo()
}
func DefaultFoo() {
}
type Impl struct {
}
func (i *Impl) Foo() {
DefaultFoo()
}
go的理念是尽量避免语法糖,能用一种办法替代某个语法feature就绝不加第二种可能
。这是它区别于其它语言的特色,我觉得挺好的。 |
|
z****e 发帖数: 54598 | 12 c/go -> imperative procedural
java/swift/dart -> imperative oo 不支持func java和swift还有generic和
reflective,最popular都在这里,入门应该首选这个,毫无疑问,就dart弱一点,其
他两个很强悍
clojure/haskell -> func 不支持oo
groovy/js/python -> imperative oo func 主要是这三个亮,python还支持
reflective,但是多数脚本不支持,脚本同时搞oo和fp,所以就慢,还有就是脚本一般
都是dynamic types还有mutable object,所以慢
scala啥都有,除了c和go做的procedural以外,其他都有,全能战斗型语言 |
|
d****n 发帖数: 1637 | 13 结尾没有return, at 9:17AM PCT
package main
import (
"encoding/csv"
"fmt"
"io"
"os"
)
func main() {
if err := readUserCSV("./test.csv", lambda); err != nil {
//do something
}
}
func readUserCSV(file string, lambda func(string, string) error) error {
csvfile, err := os.Open(file)
if err != nil {
return err
}
defer csvfile.Close()
reader := csv.NewReader(csvfile)
for {
record, err := reader.Read()
if err != nil {
... 阅读全帖 |
|
a***n 发帖数: 623 | 14 1 package main
2
3 import (
4 "encoding/csv"
5 "io"
6 "os"
7 )
8
9 func readUserCSV(file string, lambda func(string, string) error) error {
10 csvfile, err := os.Open(file)
11 if err != nil {
12 return err
13 }
14 defer csvfile.Close()
15
16 reader := csv.NewReader(csvfile)
17 reader.Read()
18
19 for {
20 record, err := reader.Read()
21 if err != nil &... 阅读全帖 |
|
d****n 发帖数: 1637 | 15 type AggError struct{
cnt int
errorVals [] interface{}
}
func myFn () error{
var aggErr AggError
for {
go func(){
...
if err!=nil{
sync.Lock()
aggErr.cnt++
aggErr.errorVals = append(aggError.errorVals, err)
sync.Unlock()
}
}()
}
return aggErr
}
func Caller(){
err := myFn()
if err == aggErr{
//handle it
}
//anything else rather than AggError is what I dont know. submit to Caller
} |
|
z*******3 发帖数: 13709 | 16
所有的func之类的都在object里面
然后class level有一个class func/static
没有1st class citizen func,不强调immutable
没有lambda,大概类似java8之前的java features
就可以被认为是比较纯粹的oop了
现在android还不支持java8,所以可以认为android是比较纯粹的oop |
|
z****e 发帖数: 54598 | 17 把文档好好看看吧
v3还提供了一种简化的直接在代码里面嵌入blocking code的方式
虽然会使得代码马上变丑陋,但是便于测试
但是不管怎样,区分blocking和non blocking code应该是第一步
一般web都是non blocking伺候http req
拿到blocking的req的话,就交给worker
当然你也可以直接用worker伺候http req,但是这种用得比较少
所以你可以简单认为worker是处于一般verticle后面一个level的verticle也就是actor
v3新加入了一个Multi-threaded worker verticles
这个要用起来的话,可以节省verticle的数量,可以复用func/methods这些
但是需要用到多线程的技巧,一般都用在worker之后用来复用method/func的wrapper用
类似spring和fp的1st class func的搞法
你可以简单认为这个verticle是处于worker之后一个level的verticle
这样三层应该够你用了,你非要弄4-5层,那实在没有办法一一对应
毕竟... 阅读全帖 |
|
t**r 发帖数: 3428 | 18 haskell 真是逆天, 各种特殊符号都有特殊用途
抛开applicative functor, monad 这些先不说
. func composition
$ func application
` func name in middle
还有最基本的
::
->
=>
还有默认的 right-associative.
导致的结果就是: 写代码不容易,读代码更难。
保守的不看好这个语言,虽然很多牛逼概念和实现。 |
|
d******e 发帖数: 2265 | 19 scala为什么要用 DI?
DI本来说就是对fp的蹩脚的模拟,现在fp里面在用oop mocked fp?
如果按照oop的术语必须inject behavior. fp里面func是第一class的公民,
直接加入callback func好了。如果需要合成一个新函数,用partial func和curry好了。 |
|
s********k 发帖数: 6180 | 20 看了下你的逻辑,你现在这样实现?
go func(recv socket)?
如果成这样是不是更好?
func recv(socket){
for pub in range publishers{
go func(service)
}
}
就是说把goroutine用在业务逻辑,不是IO上?
epoll
IO
go |
|
发帖数: 1 | 21 个人觉得第一种做法并不实用因为这里知道你需要从chan等的数据的个数, 实际中很少
是这样
我经常做的是把waitGroup放到consumer而不是producer。主线程spin producer和
consumer之后用wg等待。 producer在完成向chan输送数据之后close(ch),而consumer
通过测试<-ch的第二个返回值来决定是否还有data (data, ok := <-ch),没有data之
后wg.Done()来告诉主线程是否结束等待。
第一个例子还有个很tricky的错误,ch <- i 这个 i 在循环的时候一直在改变,所以
在go func里面的传给ch的时候 i 已经是下一个甚至几个循环的值,所以很可能传了一
堆n-1给ch,正确的用法是传值go func(i int) {...}(i)。例子里面go func(){}之后
缺了()可能是促成这个错误的原因。 |
|
发帖数: 1 | 22 在runtime/proc.go裡面有很多lock(&sched.lock),
例如把goroutine放到global runq裡面就需要lock
func goschedImpl(gp *g) {
status := readgstatus(gp)
if status&^_Gscan != _Grunning {
dumpgstatus(gp)
throw("bad g status")
}
casgstatus(gp, _Grunning, _Grunnable)
dropg()
lock(&sched.lock)
globrunqput(gp)
unlock(&sched.lock)
schedule()
}
sched是runtime2.go裡面的一個全局變量
var (
allglen uintptr
allm *m
... 阅读全帖 |
|
发帖数: 1 | 23 在runtime/proc.go裡面有很多lock(&sched.lock),
例如把goroutine放到global runq裡面就需要lock
func goschedImpl(gp *g) {
status := readgstatus(gp)
if status&^_Gscan != _Grunning {
dumpgstatus(gp)
throw("bad g status")
}
casgstatus(gp, _Grunning, _Grunnable)
dropg()
lock(&sched.lock)
globrunqput(gp)
unlock(&sched.lock)
schedule()
}
sched是runtime2.go裡面的一個全局變量
var (
allglen uintptr
allm *m
... 阅读全帖 |
|
M**8 发帖数: 25 | 24 For same quality C++ and C codes, I would say C is faster. Just like
Assembly will be faster than C. The features that are unique to C++ I can
think of are:
object oriented, Encapsulation, inheritance, polymorphism, exception
handling, class, templates, Function overloading, virtual func, new/delete
instead of malloc/free, namespace, type casting, overloading of operators,
inline func, pure virtual func, scope rule
In short, more powerful. |
|
c*9 发帖数: 3241 | 25 【 以下文字转载自 Programming 讨论区 】
发信人: peking2 (Lambda), 信区: Programming
标 题: 怎样能把go写的稍微漂亮一点?
发信站: BBS 未名空间站 (Thu Apr 30 11:23:18 2015, 美东)
比如下边这段代码,怎么能好看一点?有什么trick吗?
func readUserCSV(file string, lambda func(string, string) error) error {
csvfile, err := os.Open(file)
if err {
return err
}
defer csvfile.Close()
reader := csv.NewReader(csvfile)
reader.Read()
_for:
for {
record, err := reader.Read()
switch err {
case nil:
if err ... 阅读全帖 |
|
S**Y 发帖数: 136 | 26 cool.you are so fast.
could you give more hint(or a link/book) about "standard techniques to conve
rt the recursive func to non-recursive func."?
It cost me much time and brain to convert it myself.. thanks a lot. |
|
i*****t 发帖数: 636 | 27 【 以下文字转载自 Programming 讨论区 】
发信人: iForget (forget), 信区: Programming
标 题: 关于数组size的问题
发信站: BBS 未名空间站 (Wed Feb 17 00:43:17 2010, 美东)
举个简单例子,比如一个function有两个输入,第一个是整数数组,第二个是数组的si
ze,在主程序中调用时数组大小跟数组是一致的,比如
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
但如果不一致,比如上述例子中第二个输入为10,那么怎么在func中check呢?如果无法
check的话应该怎么处理呢?thanks |
|
m*****n 发帖数: 2152 | 28 2. func太长,func有循环的时候,这样内存消耗太大。 |
|
A*********r 发帖数: 564 | 29 declare一个函数指针
int * (func)(); //第一个括号里为函数名
declare一个函数指针数组
int * (func[]) (); |
|
i*****t 发帖数: 636 | 30 class T {
public:
void constfunc() const {
const_cast(this)->nonconstfunc();
}
void nonconstfunc() {
}
}
it's ugly, but it works. actually i think at least you should mention it is
not a good design to call nonconst func in const func |
|
u****g 发帖数: 402 | 31 谁能写个简单的factory method pattern的应用吗.
看到很多地方说这个pattern,但具体怎么用五花八门。
thinking in c++ II 里面的应用跟wiki的差了很多。
简单的
class A{ func f;};
class B:public A {func f;};
就行。 |
|
K*****k 发帖数: 430 | 32 在最早的公司,有很严格的代码规则,比如
if(a > b)不行,要写成if (a > b), if和括号之间要有一个空格,两个也不行
x=y;不行,要写成x = y; 运算符两边都要有空格
func(x,y,z)不行,要写成func(x, y, z), 逗号之后也要有空格,不可挤成一堆。
还有很多规则。
后来到了别的公司,修改别人的代码时候,看到那些不符合规则的代码就不顺眼,有时
候忍不住顺便就一起改了。
想起了卓别林去拧人家帽子上的“螺钉”这故事了。。。 |
|
K*****k 发帖数: 430 | 33 对经典题,知道了解法,自己也练过后,我想应该去找最简洁的写法。一些技巧可以减
少代码的行数或者不必要的判断。
比如Carrer Cup上的解答有类似的语句
...
if (!Func(x))
return false;
return true;
其实可以简化为写成
return Func(x);
把三行代码缩小为一行了。
还记得费马的话吗:
对于这个问题我有了一个巧妙的解法,可惜书页里的边缘太小,写不下了。
对于我们:
对这道题我有一个绝对可行的解法,可惜这个白板太小了,写不下了。 |
|
C***y 发帖数: 2546 | 34 【 以下文字转载自 Programming 讨论区 】
发信人: Chevy (Chevy), 信区: Programming
标 题: C++ function template问题
发信站: BBS 未名空间站 (Mon Nov 28 15:02:20 2011, 美东)
我有两个function,一个传入pointer,另外一个传入refernce
例如:
void func(int& a);
void func(double* a);
有办法为这两个function写一个function template吗?
Thanks! |
|
g*********e 发帖数: 14401 | 35 recursive会创建很多stack overhead,这是不是说func(type arg)会创建很多arg的
local copy在stack里边,而func(type& arg)只会有一个arg itself?
我觉的你说的没错。
reference就是一个指针吧,函数传递的就是指针。
不用ref的话,要是arg是一个很大的type,传递起来效率低,每次copy arg占用大量
stack空间。 |
|
a********d 发帖数: 195 | 36 1. String的hash func,用那个(a[0]*31+a[1])*31...,然后自然unit overflow,用
bitmap来记位的那个题。
请问和bloomfilter(用几个bitmap和几个hash func来标位)哪个好?怎么比较(或者
说怎么忽悠面试官)?
2. OO parking lot
现在收费了!设计一个收费的parking lot,parking spot按大小收费,有enum的大中
小。哪个达人帮忙在150的基础上给指点一下收费这个应该怎么搞?
class tollMachine
class InTollMachine:tollMachine
class OutTollMachine:tollMachine
class Tollticket{in/out machine...}
class ParkingMngment{}
主要是整个的流程是怎样的?这些东西都compose到parkingMngment类里?哪些方法放
在哪些类里?
3.老问题,nextIterator of in order tree
好像给的都是保留当前的状态在类里面。
如果给... 阅读全帖 |
|
j*****o 发帖数: 394 | 37 我面的时候觉得它们家还有个超诡异的特点
对于code,要求绝对优化吧。。
举个例子
他出个题,我就顺手写函数
string func(string s)
然后非百般提示,要我改进- - 最后说是让我写成void func(string &s, string &
output)
说这样省时间空间嘛的
总共就面3轮,另外一轮也是面试官一提示。。
我赶紧写成上述那样。。。人家就说OK
我一般认为题目嘛就是考算法
花了无数的时间让我在那上面改进- -
我真没想那上边去 |
|
j*****y 发帖数: 1071 | 38 两个word之间不会 shuffled吧? 感觉和anagram的题目有点类似,
产生的 original sentence可能不会唯一
vector > func(string s, int start)
{
vector > result;
if(start == s.length())
{
return result;
}
for(int i = start; i < s.length(); ++i)
{
vector word = anagramWordsInDictionary(s.substr(start,
i - start + 1));
if(word.size() > 0)
{
vector > tmp = fun... 阅读全帖 |
|
d**********o 发帖数: 11 | 39 void func(int []a)
还是
void func(int a[]) ?
两种我都见过
有啥区别没有? |
|
c*b 发帖数: 3126 | 40 void func(int **ptr)
{
*ptr = (int *)malloc(sizeof(int) * 10);
}
void main(void)
{
int *ptr = 0;
for(int i=0; i<10; i++)
{
func(&ptr);
free(ptr);
}
} |
|
g*********e 发帖数: 14401 | 41 class A;
A func() {
A a;
return a;
}
这个应该是错误用法吧?a在func结束后应该被destruct了
但为啥还经常见到这种用法? |
|
w********s 发帖数: 1570 | 42 你被黑了吧
schedule实现很复杂的,要你写code,明显还要考你mutex/lock
具体实现,用一个queue来存timestamp+function
然后开一个线程,其中一个loop
每次检查queue的开头时间是不是过了,过了的话,取出来执行func。
schedule就要往那个queue里插入pair
注意你需要一个mutex和一个lock来保护对queue的访问。 |
|
e*******s 发帖数: 1979 | 43 小学一年级
随便举2个
int (*(*func)(int *p))[];
int (*func)(int *p, int (*f)(int*));
写2函数操作这个指针 |
|
k*******a 发帖数: 433 | 44 第一个:func是个指向函数的指针,
这个函数有一个指向整形的指针参数,
返回类型为指向整形数组的指针;
第二个:func是个指向函数的指针,
这个函数的返回类型为整形,
有两个参数,
第一个为指向整形的指针,
第二个为指向函数的指针,这个函数有一个指向整形的指针参数,返回类型为整形。 |
|
y****9 发帖数: 252 | 45 [code languages="csharp"]
Func isPowerOfJ = (n, j) =>
{
var power = Math.Log(n, j);
return Math.Floor(power) == power;
};
Func isPowerof3 = (n) => isPowerOfJ(n, 3);
Console.WriteLine(isPowerof3(9));
[/code] |
|
y****9 发帖数: 252 | 46 我还是很怀念他的博客的,原来英文的很不错,我一直都想验证一下concurrent stack
的问题, 但再也访问不到了,很是遗憾。
我今年也在遭遇签证的问题,碰到了才真的体会到是个事儿,天天都在想,很愁。我希
望他的工作签证问题能顺利解决。卡不卡的再说啦。。。
他是科学家的思维,我们大多是工程师思维,他总是尝试想从本质出发去分析问题,而
我们只想最快解决工程问题。这一点的冲突也表现在处理签证问题上,他会埋怨,会表
达自己情绪。而我就会选择不断寻找机会。
我不知道他最终一生会怎么样,希望能去到一个接地气出产品的研究所吧。对于PL领域
,实际一些,工程一些。如Jon Skeet,他的一些建议是的确被C#采用的。http://codeblog.jonskeet.uk/2015/01/30/clean-event-handlers-invocation-with-c-6/
最后,我作为两年经验的普通码农,我看完CPS,我能想到的实现只有下面这个。我知
道这个概念很好,但我只能想到这个。为了传播你的智慧,造福全人类。在我这水平的
工程师和科学家之间还需要一种 Research SDE 的人... 阅读全帖 |
|
y****9 发帖数: 252 | 47 我还是很怀念他的博客的,原来英文的很不错,我一直都想验证一下concurrent stack
的问题, 但再也访问不到了,很是遗憾。
我今年也在遭遇签证的问题,碰到了才真的体会到是个事儿,天天都在想,很愁。我希
望他的工作签证问题能顺利解决。卡不卡的再说啦。。。
他是科学家的思维,我们大多是工程师思维,他总是尝试想从本质出发去分析问题,而
我们只想最快解决工程问题。这一点的冲突也表现在处理签证问题上,他会埋怨,会表
达自己情绪。而我就会选择不断寻找机会。
我不知道他最终一生会怎么样,希望能去到一个接地气出产品的研究所吧。对于PL领域
,实际一些,工程一些。如Jon Skeet,他的一些建议是的确被C#采用的。http://codeblog.jonskeet.uk/2015/01/30/clean-event-handlers-invocation-with-c-6/
最后,我作为两年经验的普通码农,我看完CPS,我能想到的实现只有下面这个。我知
道这个概念很好,但我只能想到这个。为了传播你的智慧,造福全人类。在我这水平的
工程师和科学家之间还需要一种 Research SDE 的人... 阅读全帖 |
|
L****Y 发帖数: 355 | 48 vector * func()
{
vector v{{1}};
return &v;
}
vector *v = func();
cout<at(0); |
|
b******n 发帖数: 1629 | 49 版上看了些面经,至少把airbnb的电话面试题都给看到了,虽然最后把airbnb的onsite
推掉了,但电面直接碰上原题的感觉真的好tmd有成就感。最后回馈一下版面。
整体感觉,国人面试官真的都非常的nice,老外大部分也都很nice,甚至碰到的三哥三
妹都很nice,没有感觉恶的。个人感觉面试的时候还是要多说话,不要让面试官说话,
更加不要让面试冷场,这个还是挺重要的,否则面试官一尴尬,直接就觉得没有
chemistry,反馈不可能很好。
我自己由于刷题刷得太烂,根本不想刷,看着就烦,只是把ccr和leetcode答案给看了
几遍,一遍都没写过,别的网站看都没看。所以可能不适用刷题刷的nb的同志们。基本
每家公司每道题都有时间复杂度分析,建议注意。
airbnb电面两轮,一个是house robber,一个是csv parser。
fb电面也是两轮,一个maximum continuous sum for an array, career cup面经原题
,一个是简单的trie,还有一个是n个元素中求包含k个元素的组合,dfs做,follow up
提高performance,被国... 阅读全帖 |
|
r****8 发帖数: 22 | 50 networking背景。和web公司的风格不大一样。多个公司的面筋。希望对后来人,有帮
助。
implement a hash table
lru cache
two sum
void store(int val);
store the value
bool test(int target);
return true if two stored values who sum equals target
otherwise false
We want test really fast.
O(1) test
O(n) store
Given a binary tree where parent node value is minimum of two children node
values, find the second min.
given nested list, return sum. Sum is defined as depth*current sum
what is dead lock? how to prevent it?
implement a readlock
im... 阅读全帖 |
|