字符串训练 文章目录处理输入的技巧针对类型转化针对复杂字符串解析例题日志排序处理输入的技巧针对类型转化// 字符串转数字stoi(str); // tointstod(str); // todouble// 数字转字符串to_string(type); //type可以是一系列数字类型针对复杂字符串解析1.按空格解析成字符串数组,直接使用stringstream// 解析成array类型// 按照空格分隔字符串并且转换成array类型#include <string>// s
Aacwing练习代码汇总 文章目录动态规划背包问题图论dfsbfs树与图的DFS树与图的BFS拓扑排序最短路相关Dijkstra 单源最短路径bellman-fordFloyd最小生成树相关PrimKruskal动态规划背包问题// 01背包#include <iostream>using namespace std;const int N = 1010;int n, m;int v[N], w[N];int f[N];int main() { cin >> n >&g
C++DS的使用心得汇总(stack,queue) stack初始化//stack<int> s1;//栈构造stack<int> s2(s1);//vector构造list<int> values {1,2,3,4,5};stack<int,list<int>> my_stack (values);//正确√stack<int> values {1,2,3,4,5}; //错误×stack常用方法top();//返回栈顶元素pop(); //弹出
C++STL的使用心得汇总(vector,string,map,list) 文章目录find()函数vector的findstring的findmap的findcount()函数vector的countstring的countmap的countvectorstringfind()函数vector的find// 寻找vec中数值10所在下标,返回10的迭代器auto it = find(vec.begin(), vec.end(), 10); if (it != vec.end()) cout << it - vec.begin(); //tip: c
背包问题汇总 背包问题:背包问题是动态规划非常重要的一类问题,它有很多变种,但题目千变万化都离不开我根据力扣上背包问题的题解总结的解题模板。负责任地说,吃透这一篇文章,力扣上所有背包问题拿过来就可以秒杀!背包定义:那么什么样的问题可以被称作为背包问题?换言之,我们拿到题目如何透过题目的不同包装形式看到里面背包问题的不变内核呢?我对背包问题定义的理解:给定一个背包容量target,再给定一个数组nums(物品),能否按一定方式选取nums中的元素得到target注意:1、背包容量target和物品nums的类
几何视角下的线性代数(3)---基与特征 文章前后关联性较强,后文都是在前文的几何概念上展开。建议顺序阅读文章目录什么是基变换将她的基表示的坐标转换成自己的基表示将自己的基表示的坐标转换成她的基表示非自己的基的坐标系进行线性变换矩阵的线性变换有作用范围视角的转化什么是特征向量和特征值一种特殊的性质和特征向量特征向量的几何意义特征向量中计算特征基构成含特征基的线性变换什么是基变换核心在于:基的变换,就是通过矩阵进行的视角切换。ps: 下文用别人的基(非默认基)和自己的基(默认基)来区分两套不同坐标系的基。将她的基表示的坐标转换成自己..
几何视角下的线性代数(2)--- 运算的几何含义 文章前后关联性较强,后文都是在前文的几何概念上展开。建议顺序阅读文章目录什么是矩阵乘法矩阵乘法的几何意义矩阵乘法运算上的几何意义矩阵乘法的运算律的几何视角证明无交换率 AB!=BA有结合律 (AB) C = A (BC)什么是行列式行列式的几何意义行列式为负数的情况:什么是逆矩阵线性方程组秩与列空间秩与零空间线性方程组的求解---逆矩阵什么是点积常见的点积几何意义解释:将点积与线性变化相关联启示:对偶性什么是矩阵乘法矩阵乘法的几何意义由上文可知,矩阵是一种线性变换,若矩阵乘变量则会对变量进行线性..
几何视角下的线性代数(1)--- 向量,线性组合与矩阵 文章前后关联性较强,后文都是在前文的几何概念上展开。建议顺序阅读文章目录什么是向量?三种视角看向量什么是线性组合线性组合的概念空间的概念线性相关的几何概念空间的基的定义什么是矩阵什么是线性变换线性变换的可视化理解总结线性变换的几何本质:线性变换的表达式 --- 矩阵什么是向量?三种视角看向量物理专业视角:向量是有方向的箭头 eg: ----->计算机专业视角:向量是有序的数字列表 eg:[1, 2]数学专业视角: 向量是任何东西!只要能保证其两个相加或与常数相乘是有意义的。eg:小松..
acwing算法基础课-数据结构部分 第二章:数据结构2-1-1 单链表(因为传统链式存储需要大量使用New函数,会带来大量时间上的开销,所以我们用数组模拟)(通常情况下,数据规模1e6)#include<iostream>using namespace std;const int N=100010;//head表示头结点的下标//e[i]表示结点i的值//ne[i]表示结点i的next指针是多少//idx存储当前已经用到了哪个点int head,e[N],ne[N],idx;//初始化void init(
python导入库错误的全套解决方案,亲测有效 当在pycharm中遇到导入库错误时,可以尝试使用cmd指令来导入。常见的库有jieba库,pandas库,numpy库,matplotlib库注意:一下所有命令都要加上加速网址1,检查pip是否更新。 打开cmd,运行代码2, 更新后运行导入指令...
拟合与回归——区别与联系 拟合并不特指某一种方法,指的是对一些数据,按其规律方程化,而其方程化的方法有很多,回归只是其中一种方法,还有指数平滑这样简单一些的方法,或者ARIMA,VAR,等等各种复杂一点的方法。拟合是一种数据处理的方式,不特指哪种方法。简单的说就是你有一组数据,觉得这组数据和一个已知的函数(这个函数的参数未定)很相似,为了得到最能表示这组数据特征的这个函数,通过拟合这种方式(具体的数学方法很多)求得参数。也有些拟合得到的参数并非是函数的参数,如神经网络,得到的是这个神经网络的参数。回归有线性回归和非线性回归,非
C++异常捕获和处理 写在前面 异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个错误,返回退出码或者终止程序等等,此时我们只知道有错误,但不能更清楚的知道哪种错误,因此,使用异常,就把错误和处理分开来,由库函数抛出异常,由调用者捕获这个异常,调用者就可以知道程序函数库调用出现错误了,并去处理,而是否终止程序就把握在调用者手里了。1. 异常的抛出和处理异常处理的语句try区段:这个区段中包含了可能发生异常的代码,在发生了异常之后,需要通过t..
pycharm突然打不开,无响应 亲测有效:下载一个Everything文件搜索工具,可以直接搜索“vmoptions”找到你修改的文件(pycharm.exe.vmoptions和pycharm64.exe.vmoptions)打开找到最后一行:-javaagent:C:\Program Files\JetBrains\PyCharm 2018.3\bin\JetbrainsCrack-3.1-release-enc.jar清除你之前添加的内容(就是把之前破解时加的那最后一行删掉就行),对,直接把这个删掉就行,再保存,再重新打开py
haskell一些内置函数的实现和扩展(1) – 实现lenlen' :: [a] -> alen' [] = 0len' (x: xs) = 1+len' xs– 实现求和Sumsum':: (Num a) => [a] -> asum' [] = 0;sum' (x:xs) = x + sum' xs– 实现head,取list第一个数head' :: [a] -> ahead' [] = error "empty list"head' (x:xs) = x– 取list第二个数headSec
leetcode(38): 检查字符串是否可以通过排序子字符串得到另一个字符串 class Solution {public: bool isTransformable(string s, string t) { int n = s.size(); vector<queue<int>> pos(10); for (int i = 0; i < n; ++i) { pos[s[i] - '0'].push(i); } for (int i = .
leetcode(37): 拆除炸弹 class Solution {public: int sgn(int k) {return k > 0 ? 1: -1;} vector<int> decrypt(vector<int>& code, int k) { int n = code.size(); vector<int> ans; for(int i = 0; i < n; i++){ if(k.
leetcode双周赛(1): 设计前中后队列 class FrontMiddleBackQueue {public: int arr[1050]; int len = 0; FrontMiddleBackQueue() { len = 0; } // 添加两个移动功能,方便调用 // 后移需要从后往前操作数组,前移需要从前往后操作数组 void moveBack(int x){if(len < x) return ; for(int i = len; i>.
haskell中 mod 与 rem 的区别 quot 是整数除法截至零rem 是整数余数,满足:(x quot y)*y + (x rem y) == xdiv 是整数除法向负无穷大截断mod 是整数模量,满足:(x div y)*y + (x mod y) == x当使用负数作为第二个参数并且结果不为零时,可以看出差异:5 `mod` 3 == 25 `rem` 3 == 25 `mod` (-3) == -15 `rem` (-3) == 2(-5) `mod` 3 == 1(-5) `rem` 3 == -2
linux操作总结汇总:进程内存通信 C语言 #include <sys/wait.h>pid = wait(&status); // wait(NULL)WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。WEXITSTATUS(status) 当WIFEXITED返回非零值时,我们可以用这个宏来提取子进程的返回值,如果子进程调用exit(5)退出,WEXITSTATUS(status)就会返回5;如果子进程调用exit(7),WEXITSTATUS(status)就会.