- 博客(7)
- 收藏
- 关注
原创 C++lower_bound函数
贴一下源码template <class ForwardIterator, class T>ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val){ ForwardIterator it; iterator_traits<ForwardIterator>::difference_type count, step; count
2022-01-29 16:00:58
2835
原创 vector<pair<int,int>>的一些问题
众所周知,往vector中插入元素有两个函数push_back()和emplace_back()他们俩的底层实现原理是不同的push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。添加pair对时,下列两个方法都可以 for (int i = 0; i < n; ++i.
2022-01-27 11:36:16
1318
原创 二分查找边界问题
//二分查找的边界值问题//查找左边界值int left_bound(int[] nums, int target) { int left = 0, right = nums.length - 1; // 搜索区间为 [left, right] while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { .
2022-01-20 22:03:57
329
原创 (五)二叉树的各种遍历
递归遍历//递归 先序遍历void traverse1(TreeNode *root){ if(root==nullptr) return; /* 对节点的操作 */ traverse1(root->left); traverse1(root->right);}//递归 中序遍历void traverse2(TreeNode *root){ if(root==nullptr) return; trav
2021-10-26 20:09:11
161
原创 算法学习笔记(四)链表
(一)哈希表unordered_map和unsorted_setunordered_map Key-> Valueunordered_set Keyhastable中的东西,若为基础类型,内部按值传递,否则按引用传递(内存占用为这个东西内存地址的大小)如装入hashtable的东西为struct,记录内存地址作为key如 nodeA=new Node(1); nodeB=new Node(1) 两个不一样,因为内存地址不一样可以认为hashtable增删改查都为常数时间的操.
2021-10-09 20:48:41
172
原创 算法学习笔记(二)归并排序、快速排序
(一)归并排序(1)求数组中的最大值#include<bits/stdc++.h>using namespace std;class GetMax{public: static int GetArrMax(vector<int> arr, int L, int R) { if(L==R) return arr[L]; int mid=(L+R)>>1; int LeftMax=.
2021-09-25 20:41:52
236
原创 算法学习笔记(一) 复杂度与简单排序算法
(一)复杂度时间复杂度:忽略小项 只关注最大项 忽略最大项的常数部分空间复杂度:一般关注辅助空间复杂度(二) 排序(1) 选择排序时间复杂度O(n^2) 辅助空间复杂度O(1)#include<bits/stdc++.h>using namespace std;int main(){ vector<int> nums; nums={3,4,7,2,3,7,2,1}; // 0个或者一个元素 //不用进行排序 if(
2021-09-15 22:24:54
339
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人