题目链接 315. 计算右侧小于当前元素的个数 题目分析 这个题让我们统计nums[i]的右边比nums[i]小的数字的个数。第一眼看我直接就暴力解了,解到15个测试用例TLE了,所以换思想。 留意到题目的tag带有二分查找,排序。我开始注意在我们暴力解的过程中,我们每次都需要在i+1 ~ nums ...
分类:
其他好文 时间:
2020-07-11 13:11:42
阅读次数:
34
1329. 将矩阵按对角线排序 暴力即可,因为满足i-j的值都是相等的是复合题意的,所以我们每次将i-j相同的存入数组,然后sort排序,将原来对角线数组更新为拍完数之后的数组 class Solution { public: vector<vector<int>> diagonalSort(vec ...
分类:
编程语言 时间:
2020-07-11 12:34:20
阅读次数:
55
枚举就是列出一个范围内的所有成员的程序,或者说是将所有情况都举出,并判断其是否符合题目条件,生活中常见的枚举有星期,里面有星期一、星期二... ...星期日... ...
在C++里面最常见的枚举就是数组的for循环,这种循环就是把数组中的每一个元素都列举一遍。 ...
分类:
其他好文 时间:
2020-07-10 16:59:30
阅读次数:
52
暴力解法很容易: /** * @Author Niuxy * @Date 2020/7/9 9:49 下午 * @Description 暴力解法 */ public final int maxArea0(int[] height) { int max = 0; for (int i = 0; i ...
分类:
编程语言 时间:
2020-07-10 00:14:45
阅读次数:
71
题目描述: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 解题思路: 这道题暴力解法就是枚举每一个数字,然后计算以该数字 ...
分类:
其他好文 时间:
2020-07-09 19:39:50
阅读次数:
69
题目传送门 分析: 暴力DP无法通过,考虑按横坐标进行分治 假设目前分治区间中点为$mid$,沿这一列将矩形划分成两份,如果一次询问两端分别在两边,那么其路线一定经过$mid$这一列上的某一点 设$f[x][y][k]=0/1$表示$(x,y)\(能否走到\)(k,mid)$ 最后答案只需要判断是否 ...
分类:
其他好文 时间:
2020-07-09 15:06:31
阅读次数:
73
字符串算法~KMP 有个视频讲的挺好的: 传送门 首先给一个字符串s,与另外一个字符串q,判断q是否是s的子串。 如何判断,先考虑暴力判断,枚举s字符串的每一位作为开头与q比较是否与q的每一位都相同,不相同及时break进入q的下一位继续从头开始比较,这样暴力判断其实也很快,一般情况下与KMP也没差 ...
分类:
编程语言 时间:
2020-07-09 09:23:19
阅读次数:
70
题解如下: public class DivingBoardLCCI { /** * 暴力解法,遍历每一种可能性 时间复杂度:O(2*N) * @param shorter * @param longer * @param k * @return */ public int[] divingBoar ...
分类:
其他好文 时间:
2020-07-08 22:43:02
阅读次数:
46
A. 售票系统 题目描述 输入格式 输出格式 样例 样例输入 4 6 4 1 4 2 1 3 2 2 4 3 1 2 3 样例输出 YES YES NO NO 分析 这道题就是一个线段树的区间修改和区间查询,但但但但是这道题n2可以过!!!!由于本人异常懒惰,就不写线段树的了,直接贴出暴力的代码,这 ...
分类:
其他好文 时间:
2020-07-08 20:16:54
阅读次数:
96
暴力枚举即可,注意特判k为0的情况。 class Solution { public: vector<int> divingBoard(int shorter, int longer, int k) { if(k == 0) { return {}; } vector<int> res; set<i ...
分类:
其他好文 时间:
2020-07-08 01:02:55
阅读次数:
53