1957

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

2013年12月26日

摘要: 网上查了下,好像可以用DP做...但是我这种DP弱...感觉只要是DP就做不来TAT(等下再看看DP的题解其实这个可以用Trie做.把dict的词全部建立一颗Trie然后呢,从给定的字符串开始走。。。遍历一下Trie,如果遇到isWord,就说明这个前缀在dict里面啦。那么在这个位置做个标记。然后扫描这些做了标记的位置(肯定是在后面啦。。。从前往后就ok了。。。继续从下一个字符开始作为起点,做如上处理。如果最后s.size()-1这个位置也是结尾的字符,那么就说明这个是ok的!返回trueclass TrieNode{ public: TrieNode* childs[2... 阅读全文

posted @ 2013-12-26 18:53 1957 阅读(676) 评论(1) 推荐(0) 编辑

摘要: - -就是把链表分成两半然后把后面的间隔插入到第一个里面当然后面的最好是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) 编辑