Saturday, May 23, 2015

http://www.mitbbs.com/article_t/JobHunting/32927715.html

给一个矩阵,只含有1,0 。可以翻转一次。可以翻转任意两个index之间所有的值,翻
转就是
1 -->0  0 -- >1
要求只翻转一次,希望翻转之后的矩阵里面的1 的个数最多。 求翻转一次,矩阵里面1
的数量的最大值。
比如矩阵 1 0 0 1 0 0 1 0
可以
翻转 [1, 5] ⇒ 1 1 1 0 1 1 1 0
或者 
翻转 [1, 7] ⇒ 1 1 1 0 1 1 0 1
矩阵里面1的个数都是6,
这个是一次翻转之后,矩阵1的个数的最大值。
只用返回这个6就行了。

面试的人说他可以只用两个变量来完成。

我跪了之后想了很久。
可以只便利数组一次。
纪录 1出现的次数 n1
一个counter ,如果 0出现 counter 加加,如果1出现,counter 减减.counter小于0
就直接纪录为0。找到counter变化过程中的最大值。
返回n1 加 counter 最大值。


Q:
什么是 IoC 
什么是 repository pattern
task-based model 与  threaded model 的区别


希望我的尸体能有点用...
顺便吐个槽,三哥问design pattern 会不,我说知道些,singleton神马的。三哥一笑
,解释一下repository pattern把。

No comments:

Post a Comment