题解 第一种方法:令数组tree[]记录栈中的元素,栈中的数值 x 的个数为 tree[x] 。树状数组维护tree[],然后二分查找。 第二种方法:利用分块,以一定长度区间为单位,记录栈中数值的个数,然后暴力查找。 代码 //树状数组 + 二分 #include<bits/stdc++.h> us ...
分类:
其他好文 时间:
2020-01-25 22:07:44
阅读次数:
82
019题: 第一种方法:暴力解,借鉴002创建一个新的ListNode存储答案,先遍历原ListNode获得他的长度并把他放入map,然后读取map并创建出答案来。 其中创建的这个节点的第一位置其实是一个哑节点(dummy node)。用于简化某些极端情况! 这种解法的内存占用大,用时慢。对于内存占 ...
分类:
其他好文 时间:
2020-01-25 19:36:24
阅读次数:
68
题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和,对于每个结点都输出答案。 分析:考虑暴力算法,对于每个节点只是清空计数数组,再对其子树颜色进行统计 ...
分类:
其他好文 时间:
2020-01-25 16:49:08
阅读次数:
87
排序算法 输入一个数组A,整理其中元素的相对顺序返回数组B,满足B[i]<=B[i+1] 例如 {5,1,3,4} >{1,3,4,5}如果使用暴力算法n个元素排列,开空间为n的数组,n!种相对顺序,则时间复杂度为O(n!*n),显然时间复杂度太大,就凸显出排序算法的必要性; 那么如何降低其时间复杂 ...
分类:
编程语言 时间:
2020-01-25 01:01:54
阅读次数:
94
我不复制题目了,太丑。转跳戳这里:--\(˙<>˙)/-- 这道题最简单的做法就是一个个比较,从第一个比到最后一个,但是很显然这样子太暴力了,leetcode哪里会出这种题目给我们。注意题目的字眼 “假设按照升序排序的数组在预先未知的某个点上进行了旋转”,这很明显就是想让我们用二分查找写这道题目,可 ...
分类:
编程语言 时间:
2020-01-25 00:57:30
阅读次数:
100
暴力递归就是尝试 1, 把问题转化为规模缩小了的同类问题的子问题 2, 有明确的不需要继续进行递归的条件(base case) 3, 有当得到了子问题的结果之后的决策过程 4, 不记录每一个子问题的解 一定要学会怎么去尝试,因为这是动态规划的基础,这一内容我们将在提升班讲述 汉诺塔问题 打印n层汉诺 ...
分类:
编程语言 时间:
2020-01-25 00:55:12
阅读次数:
106
引入 一个长度为$n$的数组,有$m$次查询,每次查询区间$[l,r]$内第$k$小的元素。 如果使用暴力,肯定不可以 使用线段树?可是我只会查询区间最值啊。 那么我们把问题再次简化一下,查询$[1,n]$第$k$小的元素,要求使用线段树来实现。 权值线段树 为了解决这个问题,我们引入一个名词: 权 ...
分类:
其他好文 时间:
2020-01-24 18:50:03
阅读次数:
102
1 题目 "leetcode第16题" ,给定一个数组与一个目标数,找出数组中其中的三个数,这三个数的和要与目标数最接近。 2 暴力 按惯例先来一次O(n3)的暴力: 然后。。。。 受宠若惊啊,直接暴力居然给过了。。。 3 O(n2) 算了,这种暴力笔者自己也看不下去,搞点正经事,暴力的话直接三个循 ...
分类:
其他好文 时间:
2020-01-24 17:26:47
阅读次数:
66
「ZJOI2011」最小割 "传送门" 建出最小割树,然后暴力计算任意两点之间最小割即可。 多组数据记得初始化。 参考代码: ...
分类:
其他好文 时间:
2020-01-24 00:31:53
阅读次数:
99