fvdcx's blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

leetcode-3sum-closet

发表于 2016-12-01   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/3sum-closest/

  找出一个数组中三个数之和最接近target的和

题目分析

  先将整体排序,复杂度为O(nlogn),然后扫描整个数组,每次循环中,从i之后找两个数,利用双指针的方法,使连带i组成的三个数之和接近target。因此最终复杂度为O(n^2).

阅读全文 »

leetcode-container-with-most-water

发表于 2016-12-01   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/container-with-most-water/

  横坐标由0到n-1,纵坐标是高度,问哪两个高度之间再算上它们x轴之间的距离乘积最大,也就是能放更多的水。

题目分析

  朴素的思想是O(n^2)暴力枚举,但这样显然不是这题考察的意图,正确的一个解法是,利用双指针,左指针最开始在0的位置,右指针最开始在n-1位置上,如果左指针比右指针的高度小,那么左指针右移,反之,右指针左移,直至两个指针重合,期间始终更新面积,最后所得即为最大面积。

  这种思想的正确性:例如当左指针0的高度小于右指针n-1的高度时,左指针右移一个的代价是:0~n-2,0~n-3…..0~1的面积都没有计算过,但这些面积显然小于0~n-1的面积,因此算法是正确的。

阅读全文 »

leetcode-verify-preorder-binary-tree

发表于 2016-11-26   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree/

  给以一个字符串,判断它是不是一颗二叉树前序遍历序列化的结果。

题目分析

  先将字符串split成数组,然后利用栈,伪代码如下:

阅读全文 »

leetcode-set-matrix-zeros

发表于 2016-11-26   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/set-matrix-zeroes/

  给你一个矩阵,如果矩阵中某个值为0,那么把该行该列值全部赋值为0

题目分析

  题目想让你用额外的O(1)空间复杂度去做,一个巧妙的方法是先遍历矩阵,如果某个值为0,则把此值相同列的第一行元素赋值为0,同时把相同行的第一列元素赋值为0,然后最后做统一的set。但是第一行和第一列的值会被修改,导致不知道第一行或者第一列本来有没有0的元素,因此首先先记下第一行和第一列是否有0元素。在set 0的时候先从第二行,第二列开始set。最后处理第一行和第一列。

阅读全文 »
1…252627…38
fvdcx

fvdcx

149 日志
14 分类
20 标签
GitHub
© 2015 - 2017 fvdcx
由 Hexo 强力驱动
主题 - NexT.Pisces