摘要: 这道题想不出来是因为没有抽象出他的数学模型——对于每一个位置,前面左括号的个数都大于等于右括号个数。 阅读全文
posted @ 2018-08-12 18:32 Travelller 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 链表并归排序 别人的: ①设一个preHead,return preHead->next; ②直接复制地址,无需开辟新空间。 阅读全文
posted @ 2018-08-12 11:39 Travelller 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 栈的教科书式套路。 阅读全文
posted @ 2018-08-12 11:01 Travelller 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 链表题。很简单但是debug了非常久。 愚蠢如我...把所有地址存在数组里。空间复杂度... 非常巧妙的方法,保持两个指针差n个位置,使后面的指针指向最后一个,前面的指针即为倒数第n. 阅读全文
posted @ 2018-08-12 10:35 Travelller 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 深搜广搜 & 递归转非递归 阅读全文
posted @ 2018-08-09 23:28 Travelller 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 难点在于不能有重复。 开始的思路是先两两求和,然后对得到的新序列求2Sum,但是很难排重。本想利用set<set<int>>排重,结果因为stl内部实现机制,应该是做不到。 可行的思路是,外层暴力fix前两个数,内层一个循环固定后两个数。还是注意排重。 阅读全文
posted @ 2018-08-09 22:12 Travelller 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 类似上一题15 3Sum 看到有人把代码写的很简洁,也放上来。 阅读全文
posted @ 2018-08-09 16:07 Travelller 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 求无序数列中三个数和为0的所有情况。 思路:排序。外层循环fix第一个数O(n)。内层循环O(n)同时寻找第二个和第三个数和为第一个数的相反数:考虑到不能出现重复情况,所以内层循环每次从第一个数的下一个值进行循环;两个指针分别指向第一个数的下一个数,和序列的最后一个数,如果三个数之和大于0,右指针向 阅读全文
posted @ 2018-08-09 12:11 Travelller 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 简单题。 纵向比较(每个字符串的第一个第二个...)和横向比较(两两字符串的最长公共前缀...) 我对所有串进行排序,然后求最大和最小两个子串最长公共前缀。(不确定String compare如何实现,估计复杂度略高,但耗时都是4ms) 阅读全文
posted @ 2018-08-07 20:10 Travelller 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 很无聊的题。 可以写成比较复杂的分支,但是discuss中有人把代码写的非常简洁,虽然我不喜欢这样使用unordered_map,但可以直接换成数组(只不过会浪费空间)。 阅读全文
posted @ 2018-08-07 18:05 Travelller 阅读(82) 评论(0) 推荐(0) 编辑