上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 223 下一页
摘要: "题目链接" 【题解】 一道傻逼括号匹配题 【代码】 阅读全文
posted @ 2019-11-08 15:07 AWCXV 阅读(108) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 经典的一道题。 让p1指向链表的第一个元素。 让p2指向链表的第二个元素。 然后让他们俩同时往后移动。 直到p2到达链表的尾巴。 这时p1和p2之间总是隔了n 1个元素。 所以p1一定是倒数第n个元素。 记得加个虚拟的头结点方便删除操作(删掉了第一个数字的话) $O(N)$ 阅读全文
posted @ 2019-11-08 15:01 AWCXV 阅读(76) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 两重循环枚举[i..j]这个区间 同时规定必取nums[i]和nums[j] 那么现在的问题就变成在下标为[i..j]这个区间的数字里面找两个数字使他们的和为target nums[i] nums[j]. 这个问题可以在O(N)的复杂度解决。 所以复杂度就是$O(N^3)$ 阅读全文
posted @ 2019-11-07 17:07 AWCXV 阅读(153) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 用回溯法搞一下。 一搞就有~ 注意输入空串的时候别返回那个空串。。 【代码】 阅读全文
posted @ 2019-11-07 08:23 AWCXV 阅读(101) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 上一道题那个算法求三个数的和为0的时候,其实就是一个不断在逼近本题中x=0的情况。 那么就套用上面那道题的做法。 在逼近的时候,取个差值的最小值就好了。 【代码】 阅读全文
posted @ 2019-11-06 21:43 AWCXV 阅读(96) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 先把n个数字升序排个序。 然后枚举三元组最左边的那个数字是第i个数字。 之后用两个指针l,r移动来获取三元组的第2个和第3个数字。 (初始值,l=i+1,r = n 1); 如果a[i]+a[l]+a[r] 0 那么说明后面两个数字a[l]和a[r]太大了。 得让其中较大的那 阅读全文
posted @ 2019-11-06 21:15 AWCXV 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 二分最长前缀的长度。 然后暴力把第2..n个字符串和第1个字符串的前mid个字符匹配。 还有一种比较厉害的算法。 把这n个字符串加入到字典树当中去。 然后根节点到第一个有分支的节点路径上的点形成的字符串就是最长前缀了。 【代码】 阅读全文
posted @ 2019-11-06 16:33 AWCXV 阅读(106) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 就是上一题反过来的过程。 因为有说一般情况下后面的罗马数字是小于前面的罗马数字的。 如果前面的罗马数字小于后面的罗马数字了。 说明出现了4,9,40,90这些特殊情况。 那么就得判断一下下了。 直接用map把所有的罗马数字对应的数字都放进去。 然后就很好做啦。 写的时候遇到一 阅读全文
posted @ 2019-11-05 23:38 AWCXV 阅读(122) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 (涨知识了。。原来罗马数字是这么回事。。 把{1,4,5,9,10,40,50,90,100,400,500,900,1000}这些东西的罗马数字放在一个数组里面。 每次从大到小减。 减一个加上对应的罗马数字就好。 【代码】 阅读全文
posted @ 2019-11-05 23:12 AWCXV 阅读(114) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 【题解】 双指针。 一开始l=0,r = len 1 然后不断往中间收缩。 如果发现h[l]h[r]同理 一开始想到的是一个nlogn的做法。 先从大到小排个序(按照高度)。 然后顺序枚举i 显然1..i这里面的板子组成的矩形的话,一定是以第i个板子的高度为准的(最小). 那么当前的任 阅读全文
posted @ 2019-11-05 22:50 AWCXV 阅读(65) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 223 下一页