AcWing题解
文章平均质量分 76
Far_Rainbow
踏石留印,抓铁有痕
展开
-
AcWing 0x02. 语法基础课【Python3】版题解-函数/类和对象/常用库
AcWing 0x02. 语法基础课【Python3】版题解-函数/类和对象/常用库原创 2022-08-01 12:10:42 · 315 阅读 · 0 评论 -
AcWing 0x01. 语法基础课【Python3】版题解-内置数据结构/字符串
AcWing 0x01. 语法基础课【Python3】版题解-内置数据结构/字符串原创 2022-08-01 12:08:34 · 321 阅读 · 0 评论 -
AcWing 0x00. 语法基础课【Python3】版题解-顺序/判断/循环语句
AcWing语法基础课【Python3】版题解-顺序/判断/循环语句原创 2022-08-01 12:07:17 · 272 阅读 · 0 评论 -
【AcWing 789. 数的范围】题解
【AcWing 789. 数的范围】很明显,元素k的起始位置就是第一个大于等于k的元素的下标,终止位置就是第一个大于k的元素的下标,所以用二分查找。二分板子:【二分】C++题解一:手写二分函数#include <bits/stdc++.h>using namespace std;int n, q, nums[100010];int lower(int l, int r, int k) { while (l < r) { int mid = l +原创 2022-01-28 16:14:54 · 304 阅读 · 0 评论 -
【AcWing 788. 逆序对的数量】题解
【AcWing 788. 逆序对的数量】C++题解一:归并排序假定有把一个无序序列一分为二为两个有序序列,然后对其归并,设置双指针 iii ,jjj 分别指向左半区间和右半区间,即两个元素 aaa 和 bbb 分别位于左右两个区间产生的逆序对数量为 s0s_0s0,元素 aaa 和 bbb 同时位于左半区间或右半区间产生的逆序对数量为 s1s_1s1 和 s2s_2s2 。那么,当指针 iii 所指的元素 nums[i]nums[i]nums[i] 第一次大于指针 jjj 所指的元素原创 2022-01-28 12:42:07 · 1020 阅读 · 0 评论 -
【AcWing 787. 归并排序】题解
【AcWing 787. 归并排序】板子:【排序板子】归并排序原理有序序列的归并:利用有序序列的单调性质,设置双指针对序列进行扫描,合并后的序列保持单调性不变。令 iii ,jjj 双指针分别指向两个递增序列 AAA ,BBB 的首元素,设置新的空序列 CCC ;若 A[i]A[i]A[i] 小于等于 B[j]B[j]B[j] ,则 A[i]A[i]A[i] 是当前序列 AAA 和 BBB 的剩余元素中最小的那个,把 A[i]A[i]A[i] 加入序列 CCC 中,并让 iii 加 1;原创 2022-01-28 11:08:55 · 73 阅读 · 0 评论 -
【AcWing 786. 第k个数】题解
【AcWing 786. 第k个数】快速选择板子:【排序板子】在【1.1.3 快速选择】本题是快速选择算法,或随机选择算法。对区间 [l,r][l, r][l,r] 进行一次快速排序后,分界点 nums[x]nums[x]nums[x] 左侧的元素都小于等于分界点,分界点 nums[x]nums[x]nums[x] 右侧的元素都大于分界点,则分界点 nums[x]nums[x]nums[x] 就是区间 [l,r][l, r][l,r] 中第 x−l+1x-l+1x−l+1 大的数,因此:当 k原创 2022-01-28 11:01:48 · 567 阅读 · 0 评论 -
【AcWing 785. 快速排序】题解
【AcWing 785. 快速排序】板子:【排序板子】C++题解一:手写快排#include <iostream>using namespace std;const int N = 1e6 + 10;int n, nums[N];void quickSort(int l, int r){ if (l >= r) return; // 如果当前区间已经没有元素则返回 int i = l - 1, j = r +原创 2022-01-17 23:47:56 · 676 阅读 · 0 评论