自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 第 277 场周赛(模拟+数列求和+二叉树+最大公倍数/最小中约数/栈)

周赛地址1.模拟class Solution {public: vector<string> cellsInRange(string s) { vector<string> ans; char c1 = s[0]; char c2 = s[3]; char n1 = s[1]; char n2 = s[4]; for(char c = c1; c <= c2; c+.

2022-03-06 15:25:00 159

原创 2022-2-5 1219. 黄金矿工(DFS)

1219. 黄金矿工回溯一定要还原,g[i][j] = temp先右后上的DFS顺序下,1,2处的3被改变后,1,1处再探索到1,2处时已经被置为0[[3,5,6,7,4,2],[4,3,1,0,2,0],[3,0,5,0,20,0]class Solution {public: int ans = 0; int n, m; void dfs(int i, int j, vector<vector<int>>& g, int sum.

2022-02-05 16:18:06 371

原创 2022-2-3 1414. 和为 K 的最少斐波那契数字数目(贪心)

1414. 和为 K 的最少斐波那契数字数目一开始就想用贪心,但是觉得贪心可能不是最短答案,也想了一个类似的dp方案(由最少的平方数组成的数),但是dp每个数是挨着的重点是证明:不存在比该方法更短的数字O(log k) O(1)class Solution {public: int findMinFibonacciNumbers(int k) { int a = 1, b = 1; while(b <= k){ .

2022-02-03 19:23:31 345

原创 ubuntu20.04 Cmake更新到10.0

1、查看当前版本cmake --version2、下载并获得cmake-3.10.0源码下载地址下载cmake-3.10.0.tar.gz3、解压、安装tar -xvf cmake-3.10.0.tar.gzcd cmake-3.10.0./configuresudo make && make install

2022-02-02 18:59:26 3218

原创 解决无法向github推送

打开代理服务器设置查看端口号(eg:8001)windows下打开git bashgit config --global http.proxy http://127.0.0.1:8001git config --global https.proxy http://127.0.0.1:8001之后vscode下再同步即可

2022-01-25 17:53:33 1013

原创 第 277 场周赛(模拟+双指针模拟+哈希表+枚举)

周赛地址1.模拟class Solution {public: int countElements(vector<int>& nums) { sort(nums.begin(), nums.end()); int n = nums.size(); if(n <= 2) return 0; if(nums[0] == nums[n - 1]) return 0; int ans = n .

2022-01-25 10:39:33 235

原创 ubuntu20.04下GLFW+GLAD安装

最近学一波openGLGLUT安装,这个好像不安装也可以GLFW+GLAD安装mkdir build && cd buildcmake ..makebudil文件下./GLFW_test

2022-01-25 10:35:47 925

原创 第 272 场周赛(模拟+模拟+dp+LIS二分解法)

周赛地址1.模拟class Solution {public: string firstPalindrome(vector<string>& words) { for(auto& s:words){ int l = 0, r = s.size() - 1; int flag = 1; while(l < r){ if(s[l] != s[.

2022-01-02 09:54:13 176

原创 第 267 场周赛(暴力+链表+模拟+并查集)

周赛地址1.暴力模拟class Solution {public: int timeRequiredToBuy(vector<int>& tickets, int k) { int ans = 0; while(tickets[k] != 0){ for(int i = 0; i < tickets.size(); i++){ if(tickets[i] == 0) continu

2022-01-02 09:50:01 70

原创 2022-1-2 390. 消除游戏(找规律)

390. 消除游戏arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]arr = [2, 4, 6, 8]arr = [2, 6]arr = [6]//每次都是等差数列//每次个数n /= 2//每次d *= 2//总共四种情况,个数为奇/偶,从左/右开始,只有偶&&从右开始时候a0不变,剩下都是a0 + dclass Solution {public: int lastRemaining(int n) { int num_sum

2022-01-02 09:49:06 1830

原创 2021-12-28 1995. 统计特殊四元组(O(n^4) -> O(n^3) -> O(N^2))

1995. 统计特殊四元组class Solution {public: int countQuadruplets(vector<int>& nums) { int n = nums.size(); int ans = 0; for(int i = 0; i < n; i++){ for(int j = i + 1; j < n; j++){ for(int.

2021-12-29 12:10:53 171

原创 算法通关之路的一些刷题笔记

算法通关之路第2章 数学之美1. 两数之和思路+解法暴力 O(n^2)排序+双指针 O(nlogn)class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int size = nums.size(); vector<vector<int>> vec(size, vector<int&g

2021-12-28 22:54:27 831

原创 labuladong的一些刷题记录

labuladong岛屿问题200. 岛屿数量思路+解法:DFS O(mn)class Solution {public: int nr, nc; void dfs(vector<vector<char>>& g, int r, int c){ if(!(r >= 0 && r < nr)) return; if(!(c >= 0 && c < nc))

2021-12-28 22:53:33 563

原创 nowcoder-linux

Linux 命令cd ..rmcpldd x.cllman 2/3man 7 signaltouchls -l x.xxx 查看文件信息ulimit -attyifconfignetstat查看进程:ps aux/ajx (a、u、j、x的含义)实时显示进程动态:top杀死进程:kill查看管道缓冲大小命令:ulimit a查看系统定义的信号列表:kill –l ipcsipcrm查看指定进程的 LWP 号:ps –Lf pid查看当前 p

2021-12-28 22:52:38 732

原创 2021-12-28 472. 连接词(Trie树、DFS、一个有意思的剪枝)

472. 连接词1280ms->124ms//朴素Trie再DFS做法//必须剪枝时间复杂度才够class Solution {public: int son[100000][26]; int end[100000]; int idx = 0; bool dfs(string& s, int startIndex){ if(startIndex == s.size()) return true; string te.

2021-12-28 22:34:30 361

原创 C语言中文网-CPPSTL

1. STL基础1.4 熟练使用STL标准库是每个C++程序员的必备技能!写多个函数 -> 类封装+重载 -> 模板、泛型使用了泛型的代码:模板泛型也是一种数据类型1.6 C++ STL要学习哪些知识?容器、算法、迭代器适配器、配接器空间配置器、内存分配器仿函数、函数对象:如果一个类将 () 运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象(又称仿函数)1.8 什么是GNU开源精神,它经历了怎样的发展历程?开放源代码的观念源自美国人 Rich

2021-12-27 21:24:16 653

原创 C语言中文网-CPP11

1. C++ 11是什么,C++ 11标准的由来Bjarne StroustrupSimula2. C++ auto类型推导auto声明推导多个变量时,不能有二义性定义时必须马上初始化auto+const当类型不为引用时,auto 的推导结果将不保留表达式的 const 属性;当类型为引用时,auto 的推导结果将保留表达式的 const 属性。限制:auto 不能在函数的参数中使用,定义函数的时候没有给它赋值auto 不能作用于类的非静态成员变量(也就是没有 stati

2021-12-27 21:23:46 342

原创 C语言中文网-CPP教程

0.一些知识constconst int * const p;int cosnt * const p;内存对齐栈溢出内存池、池化技术(内存池、线程池)内存泄露静态链接库、动态链接库C++内存分区:栈区、堆区、全局/静态区、常量区、代码区函数指针1.从C到C++1.1 学习C++之前要先学习C语言吗?C++ 支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程1.4 C++命名空间namespaceusing us

2021-12-27 21:23:15 805

原创 算法-16 拓展的算法

博弈论快速选择75 颜色分类 不变量的概念https://selfboot.cn/2016/09/01/lost_partition/剑指39 40解决topk问题摩尔投票229. 求众数 II约瑟夫环剑指62俄罗斯农民乘法CSDN模板来源int quickMulti(int A, int B) { int ans = 0; for ( ; B; B >>= 1) { if (B & 1) {

2021-12-27 21:20:09 211

原创 算法-15 搜索

2059. 转化数字的最小运算数407.接雨水 IIDFSBFSA*IDA*

2021-12-27 21:19:38 133

原创 算法-14 分治法

寻找两个正序数组的中位数最大子序和

2021-12-27 21:18:59 63

原创 算法-13 动态规划

动态规划确定dp数组及其下标含义确定递推公式dp数组初始化确定遍历顺序举例推导dp数组递归改动态规划,有几个可变参数决定你维护的dp数组是几维数组状态表示 集合(所有选法、条件)状态计算 集合划分一些文章linkAcWing算法基础课分类记忆化搜索(答案一定要是return值才记忆化搜索,不能参数是答案返回值在是void用)int dp[N][N][N] ;int dfs(int a, int b, int c){ if(越界/不符合条件) return

2021-12-27 21:18:29 106

原创 算法-12 贪心算法

2021-12-27 21:17:51 51

原创 算法-11 回溯

注意点参数能加引用就加引用,不能就用全局变量,要不然递归一次拷贝一次数据2096. 从二叉树一个节点到另一个节点每一步的方向模板void backtracking(参数){ if(终止条件){ //存放结果 return; } for(遍历本层){ //处理节点 //递归回溯 //撤销回溯 }}去重、选择每个元素只能用一次加startIndex,去重用used[]如果要对树层

2021-12-27 18:49:46 52

原创 右值引用、引用折叠、移动语义、完美转发(言简意赅一文看懂)

右值引用(实现移动语义和完美转发,消除不必要的拷贝):左值:等号左边,可以取地址右值:等号右边,不可以取地址左值引用&右值引用&&左值引用只能绑定左值,右值引用只能绑定右值 //将左值转化为右值,给需要右值的地方把左值转化为右值传递右值std::move() 引用折叠规则1.所有右值引用折叠到右值引用上仍然是一个右值引用。(A&& && 变成 A&&)2.所有的其他引用类型之间的折叠都将变成左值

2021-12-27 18:49:28 306

原创 算法-10 字符串算法

记在最前处理""BF算法BF/RK/BM图解暴力匹配void BF(string T, string P){ if(P.size() == 0) return 0; int n = T.size(); int m = P.size(); int l1 = 0; int l2 = 0; while(l1 < n){ if(T[l1] == P[l2]){ l1++; l2++

2021-12-25 11:35:48 319

原创 算法-9 递归、迭代

递归函数自己调用自己迭代A不停的调用B区别递归中一定有迭代,但是迭代中不一定有递归题目剑指offer 24题

2021-12-25 11:35:17 235

原创 算法-8 双指针、滑动窗口

双指针逆向双指针:88.合并两个有序数组快慢双指针:234.回文链表对撞双指针:滑动窗口(双指针)labuladongint left = 0, right = 0;while(right < s.size()){ char c = s[right]; //窗口更更新 right++; while(window needs shrink){ char d = s[left]; //窗口内更新 lef

2021-12-25 11:34:10 139

原创 算法-7 十大排序

概括稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一个程序所需内存的大小。冒泡排序一点一点移动,最大的放在最后vector<int> insertionSort(vector<int> arr){

2021-12-25 11:33:39 76

原创 算法-6 高精度

高精度大整数存储:用字符串读,用vector存(小端)A+B 10^6算每一位的和放到vector中当前位 %10,进位 /10最后要处理是否还有进位// C = A + B, A >= 0, B >= 0vector<int> add(vector<int> &A, vector<int> &B){ if (A.size() < B.size()) return add(B, A); vecto

2021-12-25 11:32:55 203

原创 算法-5 二分

一些参考文章GTAlgorithm极客时间https://blog.csdn.net/qq_41221520/article/details/108277801两种模板、几点区分两种情况闭区间<=mid + 1, mid - 1;int binarySearch(vector<int> nums, int target){ //闭区间[] int left = 0; int right = nums.size() - 1;

2021-12-25 11:32:05 75

原创 算法-4 数学

辗转相除法(欧几里得算法)作用 求最大公约数(gcd)int gcd(int a, int b){ if(b == 0) return a; return gcd(b, a % b)}扩展欧几里得算法素数判定bool isPrime(int n){ for(int i = 2; i * i <= n; i++){ if(n % i == 0) return false; } return n != 1;}埃式筛选(求n以内

2021-12-25 11:31:22 168

原创 算法-3 区间求和

整体数组不变,区间查询:前缀和、树状数组、线段树;数组单点修改,区间查询:树状数组、线段树;数组区间修改,单点查询:差分、线段树;数组区间修改,区间查询:线段树1 前缀和下标从1开始,好处理边界问题一维前缀和sum[i] = sum[i-1] + a[i]二维前缀和sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + matrix[i - 1][j - 1];2 差分一维差分在区间[l,r]中让数列都增加C

2021-12-25 11:30:54 419

原创 算法-2 位运算

n & (n - 1) 去掉最低位的1(191、231)a ^ a = 0(136)(a * b) % k = (a % k)(b % k) % k(372)参考文章公众号:数据结构与算法CSDN博客CSDN博客常见运算符&&: A && B,A为真,不执行B (剑指64)||: A || B, A为假,不执行B&:按位与。|:按位或。~:按位非。 ~x = -x-1^:按位异或。(相同为0,否则为1)<<:左位.

2021-12-25 11:30:19 251

原创 算法-1 复杂度分析

O(1)O(n、n^2、n^3)O(logn、nlogn)O(2^n)O(n!)

2021-12-25 11:29:08 238

原创 数据结构-10 STL

Vector初始化数组初始化 int a[5] = {1,2,3,4,5}vector初始化 vector A[10] = {1,2,3,4,5}vector A(10, 1);二维数组初始化赋值vector<vector> f1(n, vector(m,0));常用函数排序:sort(nums.begin(), nums.end());排序:sort(nums.begin(), nums.end(), cmp);逆排:

2021-12-24 20:43:21 125

原创 数据结构-9 并查集

并查集AcWing挑战程序设计竞赛功能查询合并优化路径压缩避免退化:合并时候rank(高度)小的指向rank(高度)大的(有路径压缩就不用了)模板int par[MAX_N]int size[MAX_N]//初始化for(int i = 0; i < n; i++){ par[i] = i; //记录集合个数时候才用 size[i] = 1;}//查询int find(int x){ if(par[x] == x) return

2021-12-24 20:42:22 78

原创 数据结构-8 图论

算法模板来自AcWing最短路宫水三叶讲解1 图的存储有向图add1次,无向图add2次稀疏图(n m)用邻接表稠密图(n m^2)用邻接矩阵存在重边取最短的边1-1 邻接矩阵1-2 邻接表数组实现int N;vector<int> dot(N);vector<vector<int>> g;bool vis[N] = false;void add(int a, int b){ edges[a].push_back(b);}

2021-12-24 20:41:46 190

原创 数据结构-7 跳表

1206

2021-12-24 20:41:16 67

原创 数据结构-6 堆

堆(是一个完全二叉树:除最后一层,都是满的,最后一层从左向右排列)eg: 小根堆,每一个点小于左右儿子用一维数组存储, 左儿子2x, 右儿子2x+1下标从1开始操作代码插入一个数heap[++size] = x up(size)求集合中的最小值heap[1]删除最小值heap[1] = heap[size]; size–; down(1)删除任意一个元素heap[k] = heap[size]; size–; down[k]; up[k]修改任

2021-12-24 20:40:28 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除