![](https://img-blog.csdnimg.cn/direct/3c6bf92e409a47518af7575c8ee4eb43.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
KN
文章平均质量分 72
分享小技巧
枫yy
靡不有初,鲜克有终。
展开
-
prev_permutation 和 next_permutation
next_permutation的意思是下一个排列,与其相对的是prev_permutation,即上一个排列。prev_permutation要求倒序(降序),即最后一种情况4,3,2,1。他的作用能够将排列后的下一组表示出来,比如我们要输出1,2,3,4所有排列情况。我们附上代码 :(next_permutation需要升序)其中第一个为默认情况:升序,第二个需要传一个仿函数comp。的时候就可以直接使用这两个函数,方便又快捷。原创 2024-07-25 19:35:00 · 362 阅读 · 0 评论 -
lower_bound 和 upper_bound
从首元素开始遍历,如果arr[ i ] + c等于2那么sum就+=right - left,可以理解为前面每个1都是一个个体,他们都可以和后面的两个2 组合。可以理解为lower_bound查找的是左边界的下标位置,upper_bound查找的右边界的下一个下标位置,利用这个特性可以解决此题。第一次查找left返回的是第一个2的下标,right返回的是第一个3的下标,,本题另外要注意的是sum要用long long类型。返回一个迭代器,该迭代器指向范围中比较。返回一个迭代器,该迭代器指向范围中的。原创 2024-07-09 16:31:29 · 221 阅读 · 0 评论 -
常见排序算法——选择排序(直接选择排序 & 堆排序)
直接选择排序思考非常好理解,但是效率不是很好,实际中很少使用时间复杂度:O(N^2)空间复杂度:O(1)稳定性:不稳定 (不能保证原来所具有的相对次序)堆排序使用堆来选数,效率就高了很多。时间复杂度:O(N*logN)空间复杂度:O(1)稳定性:不稳定 (不能保证原来所具有的相对次序)原创 2024-06-09 15:47:11 · 264 阅读 · 0 评论 -
常见排序算法——插入排序(直接插入排序 & 希尔排序)
元素集合越接近有序,直接插入排序算法的时间效率越高时间复杂度:O(N^2)空间复杂度:O(1)稳定性:稳定 (遍历数组不会改变相同元素的相对顺序)希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序;当gap == 1时,数组已经接近有序的了。时间复杂度:O(N ^ 1.25)~O(1.6 * N ^ 1.25)空间复杂度:O(1)稳定性:不稳定 (相同元素在排序过程中被移动)原创 2024-06-08 07:13:28 · 491 阅读 · 0 评论 -
应该背下的位运算
(重要知识点2:对应大小字母的前4位中,只有第3位bit值不一样,只有第3位bit值不一样,只有第3位bit值不一样)把不一样的bit位单独取出来,其它位补 0,也就是 0010 0000,对应的十进制数就是 32!大家有没有发现 A-a B-b ... Z-z 26个字母之间的大小写的后 4 位是完全一样的!(重要知识点1:对应大小字母的 后4位二进制是一样的,后4位二进制是一样的,后4位二进制是一样的)再来看一下头 4位。(x & 1) == 1 ---等价---> (x % 2 == 1)原创 2024-05-24 13:26:59 · 1253 阅读 · 0 评论