您的位置:首页 > 其它

leetcode第11题带来的关于人生的反思

2017-11-09 16:43 246 查看
       LeetCode上有些题目有点不够友好,比如第7题:string转int,测试case里面居然给了“input:+-2 , output: 0”这种类型,有啥意义??什么规则?而且题目最开始又不说这些规则,每次提交又特殊案例,disscuss里面对这道题的评价也很低,没啥意思,所以优先做支持率高的题目把。

      于是今天做第11题,题目大意是:(图)

       


      我的思路是:从前往后比较,i = 0的时候,和其余剩下的计算一个容积,得到一个result,当i 递增的时候,前面比较过的的就不要再比了,和后面的比,result = max(result,curresult)。时间复杂度:O(n2)。

      写了,提交,然后看discuss准备被虐。

      被虐惯了也就习以为常了,或许,这就是人生吧...

      果不其然,大佬的算法时间复杂度再O(n)级别,果然还是我的想法不够成熟-_-....我淡定的开始琢磨下面的这段代码:

      int maxArea(vector<int>& height)
{
int water = 0;
int i = 0, j = height.size() - 1;
while (i < j)
{
int h = min(height[i], height[j]);
water = max(water, (j - i) * h);
while (height[i] <= h && i < j) i++;
while (height[j] <= h && i < j) j--;
}
return water;
}       相当的短小精悍。
       前后夹击..首先使用第一行和最后一行计算最宽的容器。所有其他可能的容器都不那么宽,所以要储存更多的水,它们需要更高。因此,在评估最宽的容器后,在两端跳过不支持更高高度的线。然后评估我们到达的新容器。重复,直到没有更多可能的容器。

       为什么我想不到如下的方法???

       真的是天赋和智商不够吗?

       或许,这就是码农和程序员的区别把。

       不是说“以大多数人现在的努力程度,还远不到拼天赋的地步”???

       这句话是错的吧,或者应该说,某些行业真的很看天赋,比如-程序员....

       如果不是错的,那难道是我不够努力??这个要怎么努力才能让自己写出高效率的代码阿??如果选择相信前者,那我除了重新投胎以外无计可施,如果选择相信后者,那我还有事做,所以,姑且先相信后者把,毕竟还年轻,不能太...

       所以,我觉得我应该改变或者升级自己的思维方式,于是:

       

       马上双十一了,又是一年光...

       哎,不说了,这个节日就买两本书当女朋友把,毕竟还年轻。管它有没有用,看了再说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法