1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页

2014年1月8日

摘要: 用hash暴力。。。感觉是刚好过吧。。开始里面多查了两次,就是TLEclass Solution {public: vector findSubstring(string S, vector &L) { int wordLen = L.front().size(); ... 阅读全文

posted @ 2014-01-08 17:30 1957 阅读(162) 评论(0) 推荐(0) 编辑

摘要: 左子树的任意节点的值都比root小右子树的任意节点的值都比root大TAT怎么做。。。递归的时候设置个上下界就好了。。。左子树,更新上届右子树,更新下界/** * Definition for binary tree * struct TreeNode { * int val; * ... 阅读全文

posted @ 2014-01-08 16:14 1957 阅读(123) 评论(0) 推荐(0) 编辑

摘要: = =简单题...尝试考虑了各种情况.../** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *reverse(ListNode* start){ ListNode* prev = nullptr; ListNode* now = start; ... 阅读全文

posted @ 2014-01-08 09:17 1957 阅读(576) 评论(0) 推荐(0) 编辑

2014年1月7日

摘要: 用个stack来记录目录,如果要往前跳就pop就好了不过要主意的是....xxx..xxx这样的在unix是合法路径,开始没考虑TAT,以至于后面改的代码很乱,虽然AC了...class Solution {public: string simplifyPath(string path) { ... 阅读全文

posted @ 2014-01-07 16:45 1957 阅读(1008) 评论(1) 推荐(0) 编辑

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) 编辑

2014年1月4日

摘要: 又是链表题,最近都不想做了。。。不过今天状态不好,做做吧把链表分成大小为k的各种块,然后反转这些块。想想还是有点麻烦的感觉。。。。要考虑前面,后面的。。。。那就递归吧。。。这应该就简单了。。。就处理当前k个就好了。。。找到这k个。。。reverse。。。next指向后面处理好的head(递归/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cla... 阅读全文

posted @ 2014-01-04 22:25 1957 阅读(188) 评论(0) 推荐(0) 编辑

摘要: 偷懒,直接用了Merge Interval的代码。。。吧那个Interval加入到前面的vector,然后就和Merge Interval一样的了。。。TAT..几天前才写过的代码,结果都又是各种问题。。。唉。。。代码能力啊。。。。/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */b... 阅读全文

posted @ 2014-01-04 13:22 1957 阅读(191) 评论(0) 推荐(0) 编辑

2014年1月3日

摘要: 简单题,我不知道为啥我做的这么纠结..........就是扫描...有空位做个标记,没有就长度就涨...如果之前有空位了,再次出现非空格,那么从0算....class Solution {public: int lengthOfLastWord(const char *s) { int len = 0; int state = 0; while(*s){ if(*s != ' ') { if(state == 0) len++; else ... 阅读全文

posted @ 2014-01-03 13:19 1957 阅读(124) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页