摘要: 本题是思路是使用动态规划,dp是一个字典,其含义是:假设以某个string作为链的结尾时形成的链的最大长度。 因此最后dp的values中,最大的值就是输入列表所能形成的最长的链的长度。 阅读全文
posted @ 2019-05-26 23:51 Sempron2800+ 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 本题的思路是滑动窗口,在区间i到i+X之间,假设全部都处于平静状态,将客人的满意度都加在一起。 然后窗口向右滑动,最左侧的离开窗口,最右侧的新进入窗口,根据其原始状态,判断是进行加还是减。 具体的判断逻辑在代码的15~20行。 阅读全文
posted @ 2019-05-26 16:20 Sempron2800+ 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 思路,将数组中的元素按照出现次数,从大到小排序,将其展开成按照次数排列的数组。 例如[7,7,7,8,5,7,5,5,5,8],展开成[7,7,7,7,5,5,5,5,8,8]或者[5,5,5,5,7,7,7,7,8,8]。 然后遍历这个展开数组,将其中的元素先插入偶数位(0,2,4,6...... 阅读全文
posted @ 2019-05-26 14:42 Sempron2800+ 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 先寻找需要替换的项,从后向前寻找。如果前项>后项,那么这个“前项”就是要被替换的。 然后在这个项的右侧区域中寻找用于交换的位置。寻找比“前项”的值小的值中的最大的那个,同样的值选择位置靠后的。 关键的代码是10~13行。 阅读全文
posted @ 2019-05-26 12:10 Sempron2800+ 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 这道题目的思路,将原数组排序保存到另一个数组中,然后对比这两个数组中的每一项,如果值不同,则将计数器加1。 最后返回计数器的值。 阅读全文
posted @ 2019-05-26 12:09 Sempron2800+ 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 又是一道dp的题目,还是给出一个超时的解。 经过分析,猜测上面的代码超时的主要问题是在第10行,每次重新计算切片的最大值。 因此尝试改进,代码如下: 使用premax变量来存储切片的最大值,而省去了每次调用max()函数来进行计算,从而提高效率。最终获得了AC的结果。 阅读全文
posted @ 2019-05-26 08:10 Sempron2800+ 阅读(172) 评论(0) 推荐(0) 编辑