用脸贴着问题想问题

平时喜欢站在高处俯看问题,觉得很自在,有种掌控全局的感觉。比如画流程图解决某个功能性问题,一目了然,没有技术难点的话,基本一下子就能解决问题。

但有时候有必要试着放低身板,并肩站在问题身旁寻求解决办法。身在山中也无妨,由小而大,从局部推至整体,有时候可以更好的解决问题。

比如下面这个小问题:

某股票价格,一定时间t内价格变化为P1, P2, P3, …, Pn. 则不同时间点的价格差为P_{j}-P_{i} ( 时间点 j > 时间点 i ). 求这段时间t内的最大价格差。(n >= 500000, 1 <= P_{i} <= 10^{9} )

从整体看,会很容易想出把每个差求一遍,最后得出最大差值:(maxV: 当前最大价格差,max: 求两者间较大者,min: 求两者间较小者)

for j ( 1 ~ n-1 )
  for i ( 0 ~ j-1 )
    maxV = max ( maxV, P[j]-P[i] )

这样可以解决问题,但效率不行,n比较大,双循环会很慢。

此时把眼光聚焦到每个时间点,从时间点0开始思考,然后依次推向最后时间点n,会发现一次循环便可以解决问题:(maxV: 当前最大价格差,minP: 当前最小价格,max: 求两者间较大者, min: 求两者间较小者)

minV = P[0]
for j ( 1 ~ n-1 )
  maxV = max ( maxV, P[j]-minP )
  minP = min ( minP, P[j] )

即,从任何一个时间点往回看的话,该时间点的最大价格差就是:

该时间点价格 - 当前最小价格) 或 (之前保存的最大价格差

程序员健康用眼

一、经常眨眼

许多人看屏幕时,眼睛眨动的频率会比平常少。眨眼次数减少会降低泪水对眼球的润滑作用,造成经常干燥、不适。如果必须长时间用眼,可考虑滋润型滴眼液。

二、避免长时间用眼

连续看屏幕不超过40-50分钟,届时应休息10-15分钟。最好每10分钟把目光从屏幕上移开,花10秒钟注视远物或向上看。目前很多运动手环支持久坐后震动提醒休息。

休息时可让眼球上下左右各方向转转,闭目仰卧或远眺,避免再近距离用眼。一天可2-3次适度热敷眼睛。

三、改变工作步调

每小时站起来走动一下,让身体和眼睛休息一下。伸个懒腰,远眺几分钟。

四、注意光源位置

计算机屏幕放置的地方,应让最强的光源位于侧边。而且周遭环境的亮度不应超过屏幕亮度。可使用自动亮度调整光源,尽可能避免光线直射眼睛或屏幕反光。

屏幕反光会造成眼睛不适。最强的反光来自上方光线,包括萤光灯或阳光。关掉部份或全部的上方光源可减少反光。把屏幕略微向下倾斜、使用防反光屏幕或拉上窗帘都可减少反光。

五、保持良好坐姿

俗话说“头有枕、肘有撑、背有靠、脚有踏”,良好的姿势可预防脖子和背部肌肉酸痛。

头有枕,让脖子有机会放松;手肘靠桌面,不悬空,才能让肩膀放松;背有靠,让腰有支撑。脚有踏,脚平贴地板至少大概成90度左右,避免腿部血液循环差、脚容易麻。

坐时一定坐到椅子最里面,身体稍微往后。如果发现膝盖窝压到椅垫,表示椅背太深,脚会容易麻,血液循环不好。另外,避免坐太高、让脚悬空的椅子,选择可调整高度的椅子。

六、使用大屏幕

使用15吋以上且分辨率高的屏幕。屏幕与眼睛的适当距离,约等于手臂伸直的长度。尽量放大字体或页面,避免身体前倾。

屏幕顶端应该与眼睛同高或稍低,视线对准屏幕中央,应是往下看的10-20度俯角。使用可调高度的座椅,此外,必须保持屏幕的清洁,因为灰尘会让屏幕更容易反光。而当屏幕生成闪烁或图象模糊时,应及时送修或更换。

七、调整键盘

将键盘置于屏幕正前方。假如打字时要一直搜寻键盘,眼睛会因持续移动和重新对焦而疲累。

键盘的最佳高度是,当你把手放在键盘上,手臂能靠近身体两侧轻松下垂,手肘大约成90度角;如果在办公室用笔记型计算机,可考虑外接键盘,并放在比桌面稍低的键盘架上。