V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  msg7086  ›  全部回复第 408 页 / 共 1046 页
回复总数  20913
1 ... 404  405  406  407  408  409  410  411  412  413 ... 1046  
2018-07-18 01:35:17 +08:00
回复了 Bearsuny 创建的主题 Linux 请问在 Ubuntu 下, sh 程序占用 CPU 过高是什么原因导致的?
SSH 端口不改倒是没事,做好正常的防护就行了。
机器被黑了,原则上来说只有重装一条路,除非你特别有信心 root 账户没有被影响到。
2018-07-18 01:25:39 +08:00
回复了 angcz 创建的主题 问与答 请教大家两道算法题,实在是想不出来了・゚( ノд`゚)
第二题的解题思路:

首先是笨办法穷举,这个就不多说了。

接下来看优化方法。
首先我们知道最优解的大值在右边,小值在左边,那么小值可以覆盖大值左边的任意数据,大值可以覆盖小值右边的任意数据,而使得最优解不变。

比如说 [0, -5, -10, -5, 0, 5, 10, 5, 0] 的最优结果与 [0, -5, -10, -10, -10, -10, 10, 5, 0] 的结果是相同的,和 [0, -5, -10, 10, 10, 10, 10, 5, 0]的结果也是相同的。我这里把这种做法叫做极值覆盖。

那么解法就很简单了,生成两个极值覆盖数组,分别是小值向右覆盖,和大值向左覆盖:
min_array = [0, -5, -10, -10, -10, -10, -10, -10, -10]
max_arrray = [10, 10, 10, 10, 10, 10, 10, 5, 0]
然后对于每个下标,求最大差值即可。

代码如下:
input = [-1, 10, -8, 8, -10, 1]

min_array = input.dup
max_array = input.dup
1.upto(input.size-1) { |i| min_array[i] = [min_array[i-1], min_array[i]].min }
(input.size-1).downto(1) { |i| max_array[i-1] = [max_array[i-1], max_array[i]].max }
diff_array = input.size.times.map { |i| max_array[i] - min_array[i] }
max_diff = diff_array.max
p min_array
p max_array
p diff_array
puts max_diff


# [-1, -1, -8, -8, -10, -10]
# [10, 10, 8, 8, 1, 1]
# [11, 11, 16, 16, 11, 11]
# 16

时间复杂度三次线性遍历 O(n),空间复杂度两次复制数组 O(n)。

接下来是继续优化空间复杂度。
我们看到大值覆盖是没有必要去计算的,直接用原始输入数据求值就行了,所以优化成:
min_array = input.dup
1.upto(input.size-1) { |i| min_array[i] = [min_array[i-1], min_array[i]].min }
diff_array = input.size.times.map { |i| input[i] - min_array[i] }
max_diff = diff_array.max
p min_array
p diff_array
puts max_diff

# [-1, -1, -8, -8, -10, -10]
# [0, 11, 0, 16, 0, 11]
# 16

时间复杂度两次线性遍历 O(n),空间复杂度一次复制数组 O(n)。

再接下来我们发现小值覆盖也没有必要生成整个数组,而是只要记录至今为止的最小值即可,因为小值总是只会更小,后续计算不会涉及到历史值,因此优化成:

min = input.first
max_diff = 0
input.each do |n|
min = n if n < min
max_diff = n - min if n - min > max_diff
end
puts max_diff

# 16

时间复杂度一次线性遍历 O(n),空间复杂度 O(1)。

同类型的 Trapping Rain Water 可以用第一种优化方法扫描覆盖极值来求解,有兴趣可以去挑战一下。
2018-07-18 00:50:03 +08:00
回复了 angcz 创建的主题 问与答 请教大家两道算法题,实在是想不出来了・゚( ノд`゚)
#10 @xwyam [-1, 10, -8, 8, -10, 1]
2018-07-18 00:45:28 +08:00
回复了 changwei 创建的主题 分享发现 你们都遇到过什么样的奇葩伸手党
你们没见过因为字幕制作发布晚了几天就被人问候全家的吧? hhh
2018-07-18 00:13:02 +08:00
回复了 angcz 创建的主题 问与答 请教大家两道算法题,实在是想不出来了・゚( ノд`゚)
第二题相当于是 Trapping Rain Water 的一个特例,最直观的做法是新开两个数组存覆盖结果,然后再相减。
空间复杂度 O(1)不知道能不能实现,回头我想一下然后贴代码上来。
2018-07-17 23:55:42 +08:00
回复了 Quanyu 创建的主题 美酒与美食 大家现在做菜还加味精吗?
家里做饭都是少盐的,反正各种调料里都有 MSG 所以自己一般不放了。
2018-07-17 23:48:47 +08:00
回复了 angcz 创建的主题 问与答 请教大家两道算法题,实在是想不出来了・゚( ノд`゚)
1.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1.upto(matrix.size + matrix.first.size - 1) do |l|
col = matrix.take(l).map(&:shift).compact
col.reverse! if l.odd?
p col
end

[1]
[2, 4]
[7, 5, 3]
[6, 8]
[9]
2018-07-17 04:10:11 +08:00
回复了 mengzhuo 创建的主题 DevOps 国内 NTP pool 服务器严重不足
中国带宽不便宜吧,一般授时用日韩服比较划算,带宽资源相对充裕和廉价一些。
程序在运行的时候,打开了文件句柄,所以文件是一直可用的。
你删除文件,并不是删除的文件,而是删除的文件系统中对于文件的引用。
文件一直在那,只不过 unlink 以后在任何目录中都没有对于这个文件的引用了而已。
所以程序会正常运行一直到结束。

unlink 以后影响的是下一个启动的程序,因为程序启动时依赖文件系统中的引用,而引用已经被删除了,所以新程序会无法启动。

> 找 inode

程序是不会去找 inode 的,只会找文件路径,所以是程序启动那一刻,文件路径所指向的文件。之后被删除了,又被新建了,都没关系。
2018-07-17 01:44:06 +08:00
回复了 SAM2O2O 创建的主题 开源软件 迈不过去的 IM 这道坎,有没有推荐好的开源 IM 项目
我们现在用的 mattermost。
那么所以为什么当初要拿群晖当服务器用呢。hhh

老老实实学我们装一台 Linux 多好。
2018-07-16 23:59:44 +08:00
回复了 CatSan 创建的主题 问与答 有什么办法可以实现大文件传输.
正常打包硬盘,包装合理的话,硬盘应该不会那么轻易损坏的。
2018-07-16 06:43:37 +08:00
回复了 nedu 创建的主题 问与答 为什么 ubuntu 的中国的源对应的是英国的服务器?
91.189.91.26

9. be3363.ccr42.jfk02.atlas.cogentco.com
10. be3472.ccr32.bos01.atlas.cogentco.com
11. te0-2-1-0.rcr51.b002133-1.bos01.atlas.cogentco.com
12. 38.104.252.70
13. mpr1.vlan-2-bbnet2.bsn004.pnap.net
14. canonical-2.mpr1.bsn004.pnap.net
15. hanger.canonical.com

不是在波士顿吗?这么大的 BOS01。英国的 IP 而已,又不是英国的服务器。
2018-07-16 04:58:32 +08:00
回复了 YuuuZeee 创建的主题 NGINX 关于 Nginx 将 post 请求转化为 get 请求的问题
> If this behavior is undesired

你是对这句英语的中文意思抱有疑问吗?
2018-07-16 04:45:10 +08:00
回复了 a7a2 创建的主题 程序员 leetcode 上的比赛的人太厉害了
@timle1029 Ruby oneliner 啊……好吧。
2018-07-16 03:32:11 +08:00
回复了 a7a2 创建的主题 程序员 leetcode 上的比赛的人太厉害了
@easylee #8 什么鬼?同一个人针对不同的语言还能用不同的算法实现最优解?这也太天秀了吧。
#15 其他语言里连打印对象功能都没有,当然也就没有这个现象了。
你想想,别的语言里是不是都是打印出字符串的?
2018-07-14 17:54:22 +08:00
回复了 CatSan 创建的主题 问与答 大佬们推荐几个好玩的 TG 群呗
你……可能会后悔的。
丢失和写入时间无关。
已经丢了的数据也不会因为你现在向老天爷祈祷所以给你换点数据丢……
2018-07-14 17:34:22 +08:00
回复了 CatSan 创建的主题 问与答 有什么办法可以实现大文件传输.
之前在纽约往中国寄了个顺丰快递,很便宜,像是硬盘这种小巧轻便的设备,三四十刀之内就能搞定(不确定,但是应该更便宜而不是更贵),空运时效也还可以。

纯粹用网速来解决不一定是个便宜的方案,考虑到你需要为世界各地的团队都配上高速网络套餐,还要考虑跨国时候的专线带宽,价格涨得飞快的。
1 ... 404  405  406  407  408  409  410  411  412  413 ... 1046  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   883 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 3973ms · UTC 21:27 · PVG 05:27 · LAX 14:27 · JFK 17:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.