假设您希望尽可能高效地找到链表的中间节点.给出的最典型的"最佳"答案是保持2个指针,一个中间和当前.当遇到的元素数被2整除时,增加中间指针.因此,我们可以在1遍中找到中间值.高效,对吗?比蛮力更好,包括1次传递到最后,然后再传1次直到我们达到/ 2.
但是......没那么快,为什么第一种方法比"蛮力"方式更快?在第一种方法中,我们将中间指针递增大约/ 2倍.但是以蛮力的方式,在我们的第二遍中,我们遍历列表,直到我们达到第二个节点的大小.那么这两种方法不一样吗?为什么第一个优于第二个?
//finding middle element of LinkedList in single pass
LinkedList.Node current = head;
int length = 0;
LinkedList.Node middle = head;
while(current.next() != null){
length++;
if(length%2 ==0){
middle = middle.next();
}
current = current.next();
}
if(length%2 == 1){
middle = middle.next();
}
Run Code Online (Sandbox Code Playgroud) 我正在使用curl和wget来获取此URL:http://opinionator.blogs.nytimes.com/2012/01/19/118675/
对于curl,它根本不返回任何输出,但是使用wget,它返回整个HTML源:
这是2个命令.我使用了相同的用户代理,两者都来自同一个IP,并且正在跟踪重定向.URL完全相同.对于卷曲,它会在1秒后立即返回,所以我知道这不是超时问题.
curl -L -s "http://opinionator.blogs.nytimes.com/2012/01/19/118675/" --max-redirs 10000 --location --connect-timeout 20 -m 20 -A "Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" 2>&1
wget http://opinionator.blogs.nytimes.com/2012/01/19/118675/ --user-agent="Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
Run Code Online (Sandbox Code Playgroud)
如果"纽约时报"可能会伪装,并且没有将源代码恢复到卷曲状态,那么标题卷曲中可能会有什么不同呢?我假设因为用户代理是相同的,所以请求应该看起来完全相同.我应该检查其他什么"脚印"?
根据经验,我应该为Postgres服务器设置多少个最大连接数?例如,如果我有8 GB内存和四核3.2 GHZ机器,并且服务器专用于Postgres,那么多少个最大连接是安全的?
假设我有一个为.domain.com设置的cookie,我的子域是sub.domain.com.我可以删除为主域设置的cookie吗?我知道可以阅读它们,但是可以删除这些cookie,还是覆盖它们的值?
有没有办法根据特定字段的长度过滤ElasticSearch文档?
例如,我有一堆带有"body"字段的文档,我只想返回正文中字符数> 1000的结果.有没有办法在ES中执行此操作而无需添加额外的列与索引的长度?
我的内容视图中有一个带标签的UITableViewCell.当我将单元格选择样式设置为灰色或蓝色时,我希望标签中的字体颜色为白色.我怎样才能做到这一点?
我有一个按钮:
每当我点击它时,它都会提交给表单.
我想劫持这种行为,所以当我点击它时,它会调用JS函数.我该怎么做呢?我补充说:
$('input.submit').live('click', addFood);
Run Code Online (Sandbox Code Playgroud)
问题是它仍然提交给表单.当我删除"type ="submit"时,它有效.
我不想删除HTML代码.它也绑定到CSS,我不想改变CSS,因为我害怕搞乱它=)
所以问题是:如何更改提交按钮的行为,以便它不提交到表单但调用我的Javascript(JQuery)函数?
有一个autovacuum查询需要很长时间才能运行,并阻止alter query运行.
在完成之前杀死这个autovacuum进程有什么危险?
PID QUERY 16967 | autovacuum: VACUUM public.articles (to prevent wraparound)
以下是我如何杀死它:
select pg_terminate_backend(16967) from pg_stat_activity;
Run Code Online (Sandbox Code Playgroud) 如果我运行pg_dump将表转储到 SQL 文件中,它是否会拍摄表中最后一行的快照,并将所有行转储到该行?
或者它是否继续转储所有行,甚至是pg_dump运行后插入的行?
第二个问题是:在运行之前停止所有插入查询是个好主意吗pg_dump?
我正在使用Net :: HTTP和Ruby来抓取URL.
我不想抓取流媒体音频,例如:http://listen2.openstream.co/334
实际上我只想抓取Html内容,所以没有pdfs,video,txt ..
现在,我将open_timeout和read_timeout都设置为10,所以即使我抓取这些流式音频页面,它们也会超时.
url = 'http://listen2.openstream.co/334'
path = uri.path
req= Net::HTTP::Get.new(path, {'Accept' => '*/*', 'Content-Type' => 'text/plain; charset=utf-8', 'Connection' => 'keep-alive','Accept-Encoding' => 'Identity'})
uri = Addressable::URI.parse(url)
resp = Net::HTTP.start(uri.host, uri.inferred_port) do |httpRequest|
httpRequest.open_timeout = 10
httpRequest.read_timeout = 10
#how can I read the headers here before it's streaming the body and then exit b/c the content type is audio?
httpRequest.request(req)
end
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法检查标题之前我读取http响应的正文,看看它是否是一个音频?我想这样做而不发送单独的HEAD请求.