03 2018 档案

摘要:题目如下: 解题思路:对于这种题目,还是用正则表达式吧。顺便吐槽下,这个题目坑实在是太多太多了,各种数字的表达类型都要考虑到,反正就是慢慢尝试呗。如果是像我一样对正则表达式不是特别熟练的话,还是建议把各种情况分开,不要写在一个表达式里,不然要死很多脑细胞的。 代码如下: 阅读全文
posted @ 2018-03-30 18:52 seyjs 阅读(148) 评论(0) 推荐(0)
摘要:题目如下: 解题思路: 如果用一个四层for循环进行暴力求解肯定是能得到结果的,但是这样的话复杂度就是O(n^4)。有没有办法把复杂度降到O(n^2)呢,答案是有的。题目要求的是四个数相加,那么我们可以利用分治的思想拆分成两个数的和与另外两个数的和相加即可,只要保证这里的两组两个数在数组中对应的下标 阅读全文
posted @ 2018-03-28 09:55 seyjs 阅读(169) 评论(0) 推荐(0)
摘要:题目如下: 解题思路:《编程之美》中有一个章节是不要被阶乘吓倒,里面讲述了“问题一:给定一个整数N,那么N的阶乘末尾有多少个0呢?例如N = 10, N! = 362800,N! 的末尾有两个0.” 这个问题的解法。本题就是在这个问题的基础上把输入和输出倒过来了。首先,对于输入参数K,我们可以知道输 阅读全文
posted @ 2018-03-16 17:50 seyjs 阅读(254) 评论(0) 推荐(0)
摘要:题目如下: 解题思路:本题如果用递归来做,思路会非常清晰。每个杯子得到的总的香槟的数量,减去自身杯子容量后,多余的部分均分成两部分,下层的两个杯子各得一半,但是这种解法在输入香槟较大的情况下会导致超时。更加合适的是用动态规划的方法,因为递推关系式很容易就能找到。对于任意一个杯子dp[i][j]来说, 阅读全文
posted @ 2018-03-14 10:11 seyjs 阅读(319) 评论(0) 推荐(0)
摘要:题目如下: 解题思路:题目明确了没有回路,而且nodes的范围是[2,15],这实在是大大降低了难度,一个深度遍历就能搞定,注意由于结果需要输出path,所以需要记录每次遍历的过程。 代码如下: 阅读全文
posted @ 2018-03-13 14:25 seyjs 阅读(175) 评论(0) 推荐(0)
摘要:题目如下: 结题思路:本题主要考察的是算法的时间复杂度,如果时间复杂度是O(n^2)的话,系统会判定超时,所以关键是优化算法。如下图,我们可以把题意理解成是每次把数组的第一个元素移到最后然后求出当前状态的point,最后得出最大的point出现的时机。point是根据元素的值减去元素所在下标得来的, 阅读全文
posted @ 2018-03-12 20:58 seyjs 阅读(485) 评论(0) 推荐(0)
摘要:最近网上很火的2018刑侦科推理试卷,题目确实很考验人逻辑思维能力。 可是对于程序员来说,这根本不是问题。写个程序用穷举法计算一遍即可,太简单。 最终输出答案是: ['B', 'C', 'A', 'C', 'A', 'C', 'D', 'A', 'B', 'A'] 阅读全文
posted @ 2018-03-02 10:12 seyjs 阅读(1461) 评论(2) 推荐(0)