摘要: 给定一个按照升序排列的长度为n 的整数数组,对于每个查询,返回改元素的起始位置和终止位置。 如果数组中不存在该元素,则返回 {-1, -1}。 #include <iostream> using namespace std; int a[100010]; int n, q; int BF1 (int 阅读全文
posted @ 2022-11-30 20:32 !&&|| 阅读(44) 评论(0) 推荐(0)
摘要: 给定一个长度为 n的整数数列,计算数列中的逆序对的数量。 #include <iostream> using namespace std; const int N = 100010; int n, a[N]; long long sort (int l, int r) { if (l >= r) r 阅读全文
posted @ 2022-11-30 20:29 !&&|| 阅读(33) 评论(0) 推荐(0)
摘要: 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。 #include <iostream> using namespace std; const int N = 100010; int a[N], n, k; int sort (int l, i 阅读全文
posted @ 2022-11-30 20:23 !&&|| 阅读(38) 评论(0) 推荐(0)
摘要: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 注意:如果某些数字不在 0 ~ n 的范围内,或数组中不包含重复数字,则返回 -1; 样例: 输入: [2, 3 阅读全文
posted @ 2022-11-16 16:17 !&&|| 阅读(174) 评论(0) 推荐(0)
摘要: 二分的本质并非单调性,而是分段性。 阅读全文
posted @ 2022-09-16 21:00 !&&|| 阅读(60) 评论(0) 推荐(0)
摘要: 判断质数代码 #include<iostream> using namespace std; bool judge (int x) { for (int i = 2; i * i <= x; i++) { if (x % i == 0) return false; } return true; } 阅读全文
posted @ 2022-09-12 17:43 !&&|| 阅读(65) 评论(0) 推荐(0)
摘要: 用数组来实现单链表,并支持链表的各种操作,能在OJ测试中获得更快的速度。 阅读全文
posted @ 2022-09-12 17:08 !&&|| 阅读(75) 评论(0) 推荐(0)
摘要: 归并排序时间平均复杂度为O(nlogn)。归并排序是创建在归并操作上的一种有效的排序算法,其核心思想与快排相同,也是分治思想。 阅读全文
posted @ 2022-09-09 20:20 !&&|| 阅读(126) 评论(0) 推荐(0)
摘要: 时间平均复杂度为O(nlogn)。快速排序是排序算法中应用最广泛的排序,其核心思想是分治。 阅读全文
posted @ 2022-09-09 17:35 !&&|| 阅读(132) 评论(0) 推荐(0)