1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年1月6日

摘要: 本来想枚举断开点,然后像I那样算,然后加起来求最大就好了。。。但是TLE。。。想了下,其实枚举断开点,重复计算了好多。。。那就先记录下来就好了。。。f,g两个数组,分别记录左右两边的最大值。。。然后再枚举。。。class Solution {public: int maxProfit(vector &prices) { int size = prices.size(); if(size f(size , 0); //left vector g(size , 0); // right; //init f ... 阅读全文

posted @ 2014-01-06 21:54 1957 阅读(195) 评论(0) 推荐(0) 编辑

摘要: 最近脑袋是怎么了。。。。这种题也能想个O(n^2)的解法来。。。好2.。。。O(n)就ok了。。。最大收益就是。。。最大-最小,当然最大要在最小的右边(废话那我们就动态更新最小点。。。开始为0.。。到达每个点计算一次收益。。。然后更新。。。这样就能保证啦。。。class Solution {public: int maxProfit(vector &prices) { int size = prices.size(); if(size < 2) return 0; int curmin = prices[0]; int profit... 阅读全文

posted @ 2014-01-06 21:22 1957 阅读(136) 评论(0) 推荐(0) 编辑

摘要: 其实我的解法不符合题意的。。。TAT不过我觉得O(1)的空间复杂度那种遍历方法似乎也没太大用吧。其实就是中序遍历二叉树,那么得到一个序列。按理说应该是递增的,不过有两个交换了,那么找出这两个就好了。(在这里有卡了,写代码能力好弱啊。。。。。我们首先顺序找到第一个不符合的(当然就是比后面的数字要大的。。。因为交换肯定把大的换前面了然后再从这个开始扫描,找到第一个大于这个数的节点(那么前面这个就是需要找的啦ex.1 2 3 4 5交换4 2 3 1 5开始找到4然后找到55前面是1交换1,4/** * Definition for binary tree * struct TreeNode { * 阅读全文

posted @ 2014-01-06 21:04 1957 阅读(142) 评论(0) 推荐(0) 编辑