1957

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

2013年12月26日

摘要: - -就是把链表分成两半然后把后面的间隔插入到第一个里面当然后面的最好是reverse一下...不然每次去查找last会超时...其实这个题,我遇到的最大的问题是...reverseList竟然写错了...就是链表的反转也能弄错...呵呵呵呵呵呵.....那就复习下吧...两种方法,一种迭代,一种递归....1,迭代挨着把next置为prev就ok了 ListNode* reverseList1(ListNode* head){ if(head == nullptr || head -> next == nullptr) return head; ListNo... 阅读全文

posted @ 2013-12-26 15:01 1957 阅读(219) 评论(0) 推荐(0) 编辑

摘要: 给一个链表,用插入排序...就是考链表的基本操作...开始想法很2,重新new一个链表...但是我明明都有链表了,我去new干嘛呢...其实嘛,排序就是把链表重新连下就好啦,一个一个的独立块,把next重新连下要是不做这题我还真不会这么去做,平时链表用的太少了T_T还有就是单向链表,要在当前位置插入... 阅读全文

posted @ 2013-12-26 14:01 1957 阅读(1226) 评论(0) 推荐(0) 编辑

摘要: 给定一个链表,用O(nlogn)的方法排序...感觉快排肯定不行了...因为...链表木有办法random access啊..so用归并排序吧.感觉链表还挺方便的,挺好写的.算中间的位置,只有遍历一次了,不过可以用快慢指针找到.然后就是归并了,没啥好多说的.../** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {pu... 阅读全文

posted @ 2013-12-26 13:17 1957 阅读(995) 评论(0) 推荐(0) 编辑

摘要: 给出平面上的点,问一条直线最多穿过几个点.要不是之前看过这个题的题解,我感觉可能会一点想法都木有...我可能会去,枚举两个点,然后再枚举其他点是否在这个直线上,O(n^3).实际上呢,我们只需要枚举一个点,然后再枚举其他点和这个点构成的斜率.既然斜率相同,而且过一个点,当然在一个直线上啦.然后找出构成的所有的斜率里面点最多的那个就ok啦.不过要注意处理的是:1,没有点2,相同点(题意似乎是算做n个而不是一个)3,斜率的话要注意垂直/** * Definition for a point. * struct Point { * int x; * int y; * Poin... 阅读全文

posted @ 2013-12-26 10:25 1957 阅读(1660) 评论(0) 推荐(0) 编辑

2013年12月23日

摘要: 简单模拟题class Solution {public: int parseInt(string& x){ stringstream ss; int res = 0; ss > res; return res; } void op(char op , stack& st){ int num1 , num2; num1 = st.top() ; st.pop(); num2 = st.top() ; st.pop(); switch(op){ ca... 阅读全文

posted @ 2013-12-23 16:10 1957 阅读(512) 评论(0) 推荐(0) 编辑

摘要: 不得不说自己是个大傻逼T_T...对于bindm a -> (a -> m b) -> mb对于newtype Parser a = Parser (String -> [(a , String)])m a明明就是指 Parser a啊...为毛我会理解成Parser (String -> [(a , String)])T_T虽然说monad就是把东西用m包起来嘛...但是m a肯定是Parser a啊...为毛啊为毛。。。我会理解成后面那个。。。。而且错了这么久。。。我就说为啥后面的我都看不懂了 阅读全文

posted @ 2013-12-23 15:42 1957 阅读(167) 评论(0) 推荐(1) 编辑

2013年12月21日

摘要: 做个LRU,算法挺简单的。。。而且好像用处也挺广的(?),用的比较广的一个cache算法比如我cache只有4这么大,现在有很多元素1,2,2,4,2,5,3cache income:11cache income:22 1cache income:11... 阅读全文

posted @ 2013-12-21 13:34 1957 阅读(7931) 评论(1) 推荐(1) 编辑

2013年11月8日

摘要: class Solution {public: int tot; vector ans; void search(string p , int left , int right){ if(left > tot || right > tot) return; if(left == tot && right == tot){ ans.push_back(p); return; } if(left generateParenthesis(int n) { // Not... 阅读全文

posted @ 2013-11-08 12:57 1957 阅读(151) 评论(0) 推荐(0) 编辑

2013年11月4日

摘要: 比I麻烦点的就是找到循环开始点TATI只是判断是否循环。要求不使用额外空间(不然hash就可以了按I的思路,我们又慢指针S和快指针F。。。F走两步,S走一步。。。若有环,必定相遇。画个图(很丑勿喷假设在红色凸起的地方相遇了。F走的路程应该是S的两倍S = x + yF = x + y + z + y = x + 2y + z2*S = F2x+2y = x + 2y + z得到x = z也就是从head到环开始的路程 = 从相遇到环开始的路程那么。。。只要S和F相遇了,我们拿一个从头开始走,一个从相遇的地方开始走两个都走一步,那么再次相遇必定是环的开始节点!/** * Definition f 阅读全文

posted @ 2013-11-04 14:40 1957 阅读(3048) 评论(6) 推荐(1) 编辑

2013年10月31日

摘要: class Solution {public: vector spiralOrder(vector > &matrix) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. vector ans; int m = matrix.size(); if(m == 0) return ans; int n = m... 阅读全文

posted @ 2013-10-31 16:38 1957 阅读(177) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页