自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速求一个二进制中1的个数的函数__builtin_popcount()

class Solution {public: int maxProduct(string s) { int len = s.size(); int n = (1 << s.size()); vector<bool> ans; ans.resize(n, false); int Max = 0; for(int i = 1;i < n;i++) { //遍历所有的可能性

2021-10-02 21:45:40 250

原创 vector之resize函数

resize函数可以用于vector数组的初始化class LockingTree {public: vector<int>p; vector<vector<int>> g; vector<int> user; int n; LockingTree(vector<int>& parent) { p=parent; n=p.size(); user.

2021-10-01 15:12:11 1925

原创 stringstream函数用法

头文件为#include 输入:21 2 320 17 23 54 77 60输出:6251#include <iostream>#include <sstream>using namespace std;int main(){ string s; stringstream ss; int n, i, sum, a; cin >> n; getline(cin, s); // 读取换行符 for (i=0; i<n; i++)

2021-09-23 19:21:58 135

原创 pair数组的初始化

PII end(0,0);

2021-09-22 16:37:20 1065

原创 bitset函数用法

bitset大概就是类似于bool数组一样的东西bitset的原理大概是将很多数压成一个,从而节省空间和时间一般来说bitset会让你的算法复杂度 /32使用bitset类型需#includebitset类型在定义时就需要指定所占的空间具体代码实现为#include <iostream>#include <algorithm>#include <cstring>#include <bitset>using namespace std;c

2021-09-06 00:50:48 487

原创 不足两位数时需要补前导零的输出格式

printf("%d:%02d\n",hours,minutes);

2021-09-05 15:39:51 937

原创 用于四舍五入的函数

round函数 int minutes = round(sum / 1000 / 20 * 60);

2021-09-05 15:14:37 102

原创 由边数求出相应的点数

用邻接表来存无向图和有向图type=1表示无向图,type=2表示有向图t表示点的下标i表示边的下标if(type==1) { t=i/2+1; if(i&1) t=-t;}else if(type==2)t=i+1;

2021-09-05 15:10:35 111

原创 lower_bound函数的用法

int find(double y){ return lower_bound(ys.begin(),ys.end(),y)-ys.begin();}起二分的作用

2021-08-11 00:20:41 507

原创 求一组数中的某一点到所有点的距离最短

for(int i=1;i<=n;i++) res+=abs(c[i]-c[(n+1)/2]);这个某一点就是这组数的中位点,即(n+1)/2;

2021-07-30 16:23:13 925

原创 一维下标变成二维下标的方法

比如一维的字符串的某个下标变成一个3x3的二维的下标string s="123456789";//8的下标为7;int k=s.find('8');//(x,y)就是对应二维的下标int x=k/3,y=k%3;同理nxn的二维下标也可以这样求

2021-07-19 01:03:19 181

原创 查找字符串中某个字符的下标

string s="12345678x";**int k=s.find('x');**return k=8;

2021-07-19 00:55:53 2664

原创 PII类型的初始化

PII end(0,0);typedef pair<int,int> PII;以上代码表示初始化PII类型的end的值为{0,0},相当于PII end={0,0}.

2021-07-18 21:30:16 1487

原创 除去数组末尾多余的零

while (C.size() > 1 && C.back() == 0) C.pop_back();数组C的类型是vector类型的。

2021-07-14 16:37:23 326

原创 快速遍历哈希表的key值和value值

unordered_map<int,int> s;for(auto [k,y]:s) { cout<<k<<' '<<y<<endl; }

2021-06-29 18:20:03 503

原创 二进制转换成十进制的方法

int state = 0; for (int j = 0; j < 10; j ++ ) state = state * 2 + s[i][j] % 2;数组s里面存的是一个二进制数中每一位的值,如100000000;

2021-06-29 17:46:31 171

原创 十进制转换成k进制的方法

for(int j=0;x;j++,x/=k) { s[j]+=x%k; }数组s[j]记录十进制数x转换成k进制后各位上的数

2021-06-27 15:44:02 751

原创 sscanft函数用法之一

int a,b,c; sscanf("2015.04.05", "%d.%d.%d", &a,&b,&c); //取需要的字符串 printf("a=%d,b=%d,c=%d",a,b,c); // a=2015,b=4,c=5

2021-06-20 20:25:37 76

原创 vector函数

const int N=110; //定义全局变量int s1[N][N],s2[N][N];//定义全局数组class Solution {public: vector<int> getBiggestThree(vector<vector<int>>& g) { int n=g.size(),m=g[0].size(); for(int i=1;i<=n;i++) for(int

2021-06-08 16:19:00 48

原创 int型转char型,string转int型,char型转int型,int型转string

char型转int型string a; for(auto c:f) { **int x=c-'a';** a+=(char)x+'0'; }int型转char型string a; for(auto c:f) { int x=c-'a'; **a+=(char)x+'0';** }string转int型(用s

2021-06-01 21:05:09 59

原创 字符串匹配

问题:在一个长度为m的字符串source中,寻找 长度为n的字符串target。如果source字符串中存在target字符串,则返回字符串target第一次在字符串source出现的位置,若不存在,则返回-1。这里涉及到一个算法–KMP算法KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简...

2020-03-27 23:05:58 228

原创 高精度加法和减法

在一般的科学计算中,会经常算到小数点后几百位或更多,当然也可能是几百亿几千亿的大 数字。一般这类数字称为高精度数。例如9908054用数组储存下来,a[4,5,0,8,0,9,9]一般是倒着存(从低位到高位,因为整数没有除个位以下的数位,但你的最高位还可以进位,那么又要开一个位置来存这个新的最高位)。高精度比较大小的步骤:1.比较两个数的长度,长度越长数就越大。2.如果两个数长度相等,就从...

2020-03-25 22:15:06 261

原创 快慢指针的用法

一般情况下,链表问题中设计到了位置都应该考虑通过构造双指针的移动规则来解决,因为链表无法知晓长度也无法随机访问。初始时两个指针均指向头指针。如果快指针为空或者快指针的next为空,那么此时慢指针即为答案,移动结束。每轮移动,快指针需要移动两次,慢指针需要移动一次。跳转步骤二。尝试证明一下:如果链表只有一个元素,那么不会触发移动逻辑,此时慢指针指向head,显然正确。设链表总共有n个元素...

2020-03-23 15:39:16 131

原创 排序、单链表排序、双链表排序(其一)

10.快速排序快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高!它是处理大数据最快的排序算法之一了。虽然 Worst Case 的时间复杂度达到了 O(n²),但是人家就是优秀,在大多数情况下都比平均时间复杂度为 O(n logn) 的排序算法表...

2020-03-20 19:50:27 230

空空如也

空空如也

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

TA关注的人

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