
算法 从入门到入坑
文章平均质量分 66
备赛蓝桥杯 天梯赛
double__apple
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构-手撕链表
力扣和牛客题的数据结构的题目都是在已有的链表上写方法,缺少从0构建链表。原创 2022-12-12 22:09:02 · 257 阅读 · 1 评论 -
算法:后缀表达式,中缀表达式转后缀表达式,后缀表达式求值。
表达式分成前缀,中缀,后缀表达式。运算符的位置在哪就是前中后表达式。考点1,后缀表达式求值。不需要考虑运算符的优先级,从左到右运算就行中缀表达式:(2+4)*3-9/3后缀表达式:2 4 + 3 * 9 3 / -ans=15Scanner s=new Scanner(System.in); String tt=s.nextLine(); String t[]=tt.split(" "); Stack<Double> st=new Stack(); for(原创 2021-03-26 18:26:39 · 338 阅读 · 0 评论 -
C++ 的String(和int型转换),char ,字符串
string的特性描述:int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)int max_size()const; //返回string对象中可存放的最大字符串的长度int size()const; //返回当前字符串的大小int length()const; //返回当前字符串的长度bool empty()const; //当前字符串是否为空void resize(int len,ch原创 2021-06-07 23:34:10 · 149 阅读 · 0 评论 -
C语言 回车结束输入方法 || 输入输出知识点:||输入一行字符串
通过 字符变量 存储空格和回车键方法int a[100]; char s; int i=0; while(s!='\n') { scanf("%d",&a[i]);//输入int s=getchar();//接收输入数字后面的字符 i++; }通过函数 cin.get() 捕获空格或者回车键int a[100]; int t=0; while(cin>>a[t]) { if(cin.get(原创 2020-11-22 16:50:21 · 10945 阅读 · 1 评论 -
c++使用sort 函数
链接:https://ac.nowcoder.com/acm/problem/16783来源:牛客网设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613输入描述:第一行,一个正整数n。第二行,n个正整数。输出描述:一个正整数,表示最大的整数示例1输入复制313 312 343输出34331213/原创 2020-09-25 17:58:15 · 425 阅读 · 0 评论 -
算法比赛经历--蓝桥杯,天梯赛,力扣,牛客,cf,acwing,acm
第一次蓝桥杯,是去年,用c++写,混了个省二等。今年蓝桥杯,用java写,水进上海前三,混了个省一等,国赛混了个二等天梯赛混了个团三。。。然后是查缺补漏,扩展算法知识点,真枯燥,临近白发,刷题太累,不想再刷题,只想打比赛联想赛,科大讯飞杯,接着打力扣,牛客,cf,acwing,acm,。算法,花了很多时间,学的一直不够深,努力过,算法让我获得了很多不属于我的东西(很多!)快毕业了,却感觉是刚刚起步学算法。...原创 2021-09-08 18:02:55 · 3520 阅读 · 4 评论 -
算法竞赛--代码技巧
快捷代码#include<bits/stdc++.h>#define for(i,n) for(int i=1;i<=n;i++)#define pb push_back#define x0 fuckhel#define y0 fuckoscar#define x1 fucksub#define y1 fuckzzy#define x first#define y secondusing namespace std;typedef long long ll;type原创 2021-07-25 00:50:45 · 220 阅读 · 0 评论 -
树状数组 从入门到入坑 完整版
操作:1,将某一个数加上 xx2,求出某区间每一个数的和#include<iostream>using namespace std;const int N=5e5+5;int n,m;int tree[N];int lowbit(int x){ return x&-x;}void add(int x,int k){ while(x<=n) { tree[x]+=k; x+=lowbit(x); }}int sum(int x)..原创 2021-06-30 12:11:07 · 137 阅读 · 0 评论 -
C语言STL标准模板库 (容器)从入门到入坑
六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器容器分类:算法分类:迭代器分类遍历一般遍历:void print(int x){ cout<<x<<endl;}int main(){ vector<int> a; a.push_back(1); a.push_back(3); a.push_back(3); vector<int>::iterator itstart=a.begin(); vector&l原创 2021-04-12 00:09:14 · 5281 阅读 · 1 评论 -
离散化,从入门到入坑
1.拷贝原数组2.将拷贝的数组排序3.利用unique()对拷贝数组去重,并记录不重复元素4.利用lower_bound()找离散化后的数的位置。注:注意下标究竟从几开始离散化后的值可以理解为是在这个数组中第几大的值,所以如果要查询离散化的值在原数组中对应哪个数,我们直接查询 t[这个值]就行了。用stl:int find(int x){ int l=0,r=all.size(); while(l<r) { int mid=l+r>>原创 2021-06-28 00:43:38 · 109 阅读 · 0 评论 -
树:红黑树,线段树。手撕源码。从入门到入坑 更新版
首先,我们要将线段树和二叉树进行比较:后者每个结点代表一个权值,前者为一段范围。范围可以涉及到,一段范围内的最大值,权值和等等为什么要用到线段树:(有点像二分查找法)原本用普通查找方法要 O(n);用线段树可缩小为O(根号2);例题: 试题 算法训练 操作格子资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个格子,从左到右放成一排,编号为1-n。 共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。 对于原创 2021-04-07 09:38:12 · 444 阅读 · 0 评论 -
正则表达式 从入门到入坑 完整版(包括力扣例题)
https://blog.csdn.net/weixin_43860260/article/details/91417485?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161406376516780264019877%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161406376516780264019877&biz_id原创 2021-02-23 15:04:45 · 765 阅读 · 0 评论 -
java-BigInteger 从入门到入坑 完整版
BigInteger 的数据范围远大于int,long。用于应对大的数据。输入方法nextBigInteger():控制台读入一个BigInteger型数据,类似于int型的nextInt();//读入方法:nextBigInteger() @Test public void test5() { Scanner scan = new Scanner(System.in); // 读入 int n = scan.nextInt(); // 读入一个int; BigIn原创 2021-03-03 18:09:45 · 170 阅读 · 0 评论 -
十大排序算法 从入门到入坑 完整版
以下表格是基于数组进行排序的一般结论排序算法的稳定性:相等的两个元素,排序前后的相对位置不变,则为稳定的算法。稳定性高:冒泡不稳定:选择原地算法:不依赖额外的资源,空间复制的为O(1)分类:比较排序:冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序冒泡排序(BubbleSort)实现代码比较相邻两个元素大小,大的向后移动。形成升序。int arr[]= {3,23,12,3,4,5}; for(int end=arr.length-1;end>0;e原创 2021-03-30 11:50:08 · 183 阅读 · 3 评论 -
树的构造,遍历方式,堆。从入门到入坑 完整版
树,有二叉树,非二叉树。将数组建成二叉树。数组从0开始,找子节点,为2i+1,2i+2;找父节点,为(i-1)/2二叉树遍历先序中序后序。分别为,根左右,左根右,左右根。代码实现static int a[]= {2,3,1,2,3,23,2}; public static void main(String[] args) { // TODO Auto-generated method stub priorder(0); System.out.println();原创 2021-03-28 21:04:16 · 433 阅读 · 0 评论 -
java 位运算 从入门到入坑 完整版
异或:不同时为1,可以理解为不进位的加法功能判断奇偶:n&1==1 为奇数用异或进行两数交换x=x^yy=x^yx=x^y原理:异或,两个相同的数异或为0.任何数与0异或等于本身。(异或运算支持交换律和结合律)用异或找出没有重复的数给你一组整型数据,这些数据中,其中有一个数只出现了一次,其他的数都出现了两次,让你来找出一个数 。1, 2, 3, 4, 5, 1, 2, 3, 4。对所有数进行异或123451234 = (11)(22)(33)(44)5= 00005 = 5.原创 2021-03-28 00:23:18 · 145 阅读 · 0 评论 -
括号匹配问题 从入门到入坑 更新版
例题:资料https://blog.csdn.net/mgsky1/article/details/90612888?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161674648216780266270768%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161674648216780266270768&a原创 2021-03-26 16:15:19 · 85 阅读 · 0 评论 -
算法之数学,数论基础 从入门到入坑 完整版
巧用进制变种3进制solution:如二进制:1011 为11 表示:取 不取 取 取。将其运用到三进制中即可package 学习哔哩哔哩;//2021年4月1日上午8:58:47//writer:appleimport java.util.*;import java.io.*;public class 变种3进制 { public static void main(String[] args) { // TODO Auto-generated method stub S原创 2021-04-01 09:23:54 · 375 阅读 · 0 评论 -
Java 解决运行超时TLE,MLE,从入门到入坑完整版
1、用BufferedReader替换Snanner作为输入class Reader { static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer tokenizer = new StringTokenizer(""); static String nextLine() throws IOException{// 读取下一行字符串 retu原创 2021-02-08 09:48:24 · 2259 阅读 · 2 评论 -
最短路径算法:Floyd Dijkstra SPFA Bellman-ford 从入门到入坑 完整版
Floyd(弗洛伊德)算法:适用范围:无负权回路即可(负权回路:a点到a点的权值和为负),边权可正可负,运行一次算法即可求得任意两点间最短路Dijkstra(迪杰斯特拉) 算法适用范围:适用于不含负权边的图,本质为贪心。为单源最短路径算法,只能求一个点到其他点的最短路径,并不像Floyd算法可以求任意两点的最短路。SPFA算法适用范围:算法平均复杂度为O(KM),有很高效率。但是出题人往往会卡极端数据,所以对于普通最短路问题,一定要慎用spfa它是一个万能的算法,它不仅可以求最短路,而且原创 2021-03-20 14:22:52 · 270 阅读 · 0 评论 -
图论(四大容器)拓扑排序 从入门到入坑 完整版
图论:要素:顶点(Vertex) 边(Edge) 边权(Weight)**度无向图:边数有向图:出度和入度树为一种比较特殊的图四个基本容器基本的容器有四个,分别对应四个接口:List:按照插入的顺序保存元素,可以有重复的元素。Set:不可以有重复的元素,可以理解为哈希表。Queue:按照队列规则先进先出。Map:将两个元素相关联,可以用键来查找值。其中List、Set、Queue这三个接口继承了Collection接口。Map则是自成一家,没有继承别人。各接口的常用实现类原创 2021-03-20 13:56:23 · 427 阅读 · 0 评论 -
最小生成树之Kruscal(克鲁斯卡尔),Prim 算法从入门到入坑 完整版
最小生成树:连通图中的权值总和最小的生成树。1,边的权值排序2,用并查集判断两个结点是否连通模板题:P3366原创 2021-03-20 13:04:01 · 426 阅读 · 0 评论 -
模拟暴力贪心分治 从入门到入坑 完整版
模拟思想:在很难用递推,递归,枚举,回溯等算法时,可采用模拟策略。技巧:1,理解题意2,组织逻辑3,写函数,不要复制粘贴4,步步验证,做一步运行一次!大整数相加字符串,存进数组。import java.math.BigInteger;//2021年3月20日上午1:59:29//writer:applepublic class moni { public static void main(String[] args) { // TODO Auto-generated met原创 2021-03-20 02:41:42 · 280 阅读 · 0 评论 -
dfs bfs 从入门到人坑完整版
图## 要素:顶点(Vertex) 边(Edge) 边权(Weight)度无向图:边数有向图:出度和入度树为一种比较特殊的图邻接矩阵:存所有点两两之间的关系邻接表:存所有点的邻居伪代码实现:邻接矩阵:int map[][]=new int[n][n];邻接表:ArrayList<Integer> a[]=new ArrayList[7]; for(int i=0;i<7;i++) { a[i]=new ArrayList<>(); }原创 2021-03-16 20:19:24 · 230 阅读 · 0 评论 -
并查集,带权并查集--从入门到入坑 完整版
狗头,通过一道入门题来入门并查集。找朋友在社交的过程中,通过朋友,也能认识新的朋友。在某个朋友关系图中,假定 A 和 B 是朋友,B 和 C 是朋友,那么 A 和 C 也会成为朋友。即,我们规定朋友的朋友也是朋友。现在,已知若干对朋友关系,询问某两个人是不是朋友。请编写一个程序来解决这个问题吧。输入格式第一行:三个整数 n,m,p(n≤5000,m≤5000,p≤5000)分别表示有n 个人,m 个朋友关系,询问p 对朋友关系。接下来 m 行:每行两个数Ai,Bi1≤Ai,Bi≤N,表示Ai原创 2021-03-09 21:08:48 · 209 阅读 · 0 评论 -
动态规划教学,入门到入坑完整版,包含几十道例题
0-1背包问题描述:有n个物体,w(i),p(i) 分别为第i个物体的重量和价值,装进c容量的背包,求背包最大价值。解题:变量nw(i)p(i)g(i,j),在j容量的情况下,从前i个物体中挑选出来,背包的最大价值g(i,j)={ g(i-1,j) w(i)>j;{ max( g(i-1,j) g(i-1,j-w(i))+p(i)) w(i)<=j初始化: g(1,j)=p(1) { if(j=>w(1) }g(1,j)=0原创 2020-10-11 18:45:50 · 372 阅读 · 1 评论