摘要:
暴力会超时,利用二分优化。 阅读全文
posted @ 2018-09-05 23:14
約束の空
阅读(85)
评论(0)
推荐(0)
摘要:
这道题的本质是寻找 数组里比某个元素大的第一个元素。 可以用单调栈来做,维护一个单减的栈,遇到大的元素,出栈知道栈顶元素大于当前元素。该过程中出栈的元素的next greater element就是当前元素。 II 循环用 i%n 可以解决,但是这道题相比上一题有了重复的元素,所以stack里存下标 阅读全文
posted @ 2018-09-05 11:39
約束の空
阅读(105)
评论(0)
推荐(0)
摘要:
多了重复的元素,可以先通过排序,如果当前元素和之前元素相同,且之前的元素没有被visit过,说明前一个元素已经访问过并重新置为没访问过,所以这种情况需要continue。 也可以用之前I的第二种方法,交换,这样就不用排序了,但是为了防止重复的答案,所以需要set 注意 dfs(start+1) , 阅读全文
posted @ 2018-09-05 10:35
約束の空
阅读(118)
评论(0)
推荐(0)
摘要:
基础backtracing的题。 之前的方法需要一个used来判断元素是否被使用过。 而下面这种方法思路很不错,每次交换数组里两个元素,当前面都枚举完毕后,从[start,...,end]依次交换。 阅读全文
posted @ 2018-09-05 05:25
約束の空
阅读(106)
评论(0)
推荐(0)

浙公网安备 33010602011771号