杂题
作为IT人,刷题必不可少,加入专栏带你玩出新花样。
1.代码C/C++版;
2.注释详细;
3.反思,总结;
4.一题多解;
5.各种做题技巧;
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Linux小魔王
写优质文章,记录美好生活,给别人讲懂,才是真正的理解,未来可期。
展开
-
二进制中1的个数
n 的二进制表示中第K位是几个位是第0位1.先把第k位移到最后一位 n >> k n右移k2.看个位是几 x&1 x与上11和2合起来 n >> k & 1 n右移k与上1lowbit(x) 返回x的最后一位1x=1010 lowbit(x)=10 x=101000 lowbit(x)=1000 lowbit(x)=x&-x x与上负x x=1010....10原创 2021-03-17 18:06:27 · 170 阅读 · 0 评论 -
算法2年的总结,搞定完这59个套路,BAT算法考试随便过!
废话不多说,直接上干货!!!1.快速排序算法模板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]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] > x);原创 2021-01-28 15:48:48 · 221 阅读 · 3 评论 -
2.并查集
一共有n个数,编号是1~n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:“M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;“Q a b”,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为“M a b”或“Q a b”中的一种。输出格式对于每个询问指令”Q a b”,都要输出一个结果,如果a和b在同一集合内,则输出“Yes”,否则输出“No”。每个结果占..原创 2020-09-14 23:55:11 · 129 阅读 · 0 评论 -
1.trie树
特点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。核心思想:空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的维护一个字符串集合,支持两种操作:“I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。输出格.原创 2020-09-14 23:07:35 · 190 阅读 · 0 评论 -
003.C/C++实数二分详解
实数二分(简单,因为稠密,没有边界问题)计算一个数字的立方根,不使用库函数详细描述:•接口说明原型:public static double getCubeRoot(double input)输入:double 待求解参数返回值:double 输入参数的立方根,保留一位小数输入描述:待求解参数 double类型输出描述:输入参数的立方根 也是double类型示例1输入复制216输出复制6.0#include<iostrea.原创 2020-08-22 13:52:31 · 371 阅读 · 0 评论 -
002.C/C++01背包问题详解
DP问题所有的优化都是对代码做等价变形01背包:每个物品最多只用一次属性:Max,Min,count。属性: 大 --小 ----- 数量01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,.原创 2020-08-22 13:46:11 · 319 阅读 · 0 评论 -
001.C/C++快速排序详解
它的最好情况为O(nlogn),最坏情况为O(n^2),平均时间复杂度为O(nlogn)。快速排序之所比较快,因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和冒泡排序是一样的都是O.原创 2020-08-22 13:37:27 · 284 阅读 · 0 评论