AcWing算法基础课
屑屑_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AcWing算法基础课-双指针
双指针算法 模板: for(int i=0,j=0;i<n;i++) { while(j<i && check(i,j)) j++; //具体问题逻辑 } 常见问题分类: (1):对于一个序列,用两个指针维护一段区间 (2):对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作 双指针算法核心:优化 两个指针暴力求解时间复杂度O(n^2) 双指针运用某些单调性质优化后,时间复杂度可变为O(n),因为总体来看两个指针都是遍历序列一次 输出单词 C++ string原创 2022-01-31 13:43:52 · 1292 阅读 · 0 评论 -
AcWing算法基础课-二分
二分 二分本质是用来查找满足某种性质的边界点 在给定区间内,能找到某种性质使得区间分为两部分,一部分满足,另外一部分不满足这种性质。 二分可以用来寻找这个性质的边界:满足某种性质的第一个元素;或者是满足某种性质的最后一个元素。 从而有两个不同模板 注意二分法一定能找到满足某种性质的边界点,但它不一定是你要找的目标 ...原创 2022-01-30 20:25:32 · 975 阅读 · 0 评论 -
AcWing算法基础课-位运算
位运算 位运算基础 &:按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 |:按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^:按位异或 若参加运算的两个二进制位值相同则为0,否则为1 ~:取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 <<:左移 用来将一个数的各二进制位全部左移N位,右补0 >>:右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0 第k位数 数原创 2022-01-20 17:15:52 · 325 阅读 · 0 评论 -
Acwing算法基础课-排序(快速排序、归并排序)
基础算法 快速排序 模板: void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]//(l+r)/2 while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x);原创 2022-01-13 22:07:15 · 300 阅读 · 0 评论
分享