算法学习
文章平均质量分 85
saisaiz
这个作者很懒,什么都没留下…
展开
-
算法笔记--哈希表
1. collections.Counter(nums) 是 Python 中的一个非常有用的功能,它位于 collections 模块下。当你将一个可迭代对象(比如列表、元组、字符串等)传递给 Counter 时,它会返回一个字典的子类,该字典的键是原始可迭代对象中的元素,值是该元素在原始对象中出现的次数。2. 用哈希表统计每个数在序列中出现的次数,假设数字 k 在序列中出现的次数为 v,那么满足题目中所说的 nums[i]=nums[j]=k(i<j) 的 (i,j) 的数量就是 v*(v-1)/2。原创 2024-07-28 22:38:37 · 452 阅读 · 0 评论 -
算法笔记---字符串---字符串的输入输出
编排字符串 题目来源:牛客网知识点:字符串的输入输出题目描述请输入字符串,最多输出4个字符串,要求后输入的字符串排在前面,例如输入:EricZ输出:1=EricZ输入:David输出:1=David2=EricZ输入:Peter输出:1=Peter2=David3=EricZ输入:Alan输出:1=Alan2=Peter3=David...原创 2020-04-08 16:17:38 · 237 阅读 · 0 评论 -
算法笔记--循环链表构造及删除结点
围圈报数 题目来源:牛客网知识点:循环链表构造,删除结点题目描述N 个人围成一圈顺序编号,从1 号开始按1、2、3 顺序报数,报3 者退出圈外,其余的人再从1、2、3 开始报数,报3 的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。输入描述:输入第一行为整数m表示有m组测试数据,接下来m行每行一个整数N,N不超过50。输出描述:...原创 2020-04-08 10:56:05 · 940 阅读 · 0 评论 -
算法笔记--字符串--将字符串中的某个单词替换成另一个单词,并输出替换之后的字符串
单词替换 题目来源:牛客网知识点:字符串,string,getline(),substr()题目描述输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。输入描述:多组数据。每组数据输入包括3行,第1行是包含多个单词的字符串 s,第2...原创 2020-04-08 09:41:07 · 2620 阅读 · 0 评论 -
算法笔记---哈夫曼树
哈夫曼树介绍哈夫曼树的求法哈夫曼树的实现题目示例原创 2020-03-15 20:27:50 · 1187 阅读 · 0 评论 -
算法笔记---字符子串以及substr()的应用
1.后缀子串排序题目来源:牛客网原创 2020-03-14 18:04:10 · 288 阅读 · 0 评论 -
算法笔记--求出的值比较大无法用整形表示,改用存储每一位输出
1.进制转换2.N的阶乘3.递推数列1.进制转换题目:题目分析:代码:代码分析:结果:2.N的阶乘题目:题目分析:代码代码分析:结果:3.递推数列题目:题目分析:(1)求第k个数对10000的模,可以用for循环或者while循环(2)如果根据递推公式将每个an求出,最后再对10000求模,这样会导致an过大,...原创 2020-03-14 17:48:10 · 135 阅读 · 0 评论 -
算法笔记--日期类问题
给出年份m和一年中的第几天,算出第n天是几月几号题目分析:(1)这类问题首先判断年份为平年闰年(2)由天数如何推算月份,遇到闰年了如何处理,使用一维数组来表示每月的天数,设置初始值(3)代码中由天数推算月份这里处理的较简洁(4)输出格式代码:#include<stdio.h>int main(){ int mon[13]={31,28,31,30,...原创 2020-03-13 11:42:38 · 449 阅读 · 0 评论 -
算法笔记---统计一个给定字符串中指定字符出现的次数,统计每个单词有多少个字母
1.统计字符2.统计单词原创 2020-03-14 18:14:19 · 1706 阅读 · 0 评论 -
算法笔记---图论---并查集
学习笔记--计算机考研机试指南题目来源:牛客网预备知识,并查集 题目 题目分析 代码1.先介绍图论问题中常常使用到的数据结构--集合,及其相关操作—并查集这种数据结构用来表示集合信息,用以实现如确定某个集合中含有哪些元素、判断某两个元素是否存在同一个元素中、求集合中元素的数量等问题(关于并查集可以看一下《超有爱的并查集~》这篇文章,作者飘过的小牛,写的很好)涉及内容,查...原创 2020-03-07 18:13:07 · 254 阅读 · 0 评论 -
算法笔记---字母统计
题目分析:(1)涉及的知识点:字符串输入;统计每个字母出现的个数;输出(2)因为题目中没有规定字符串的长度,故采用预处理宏定义;(3)统计每个字母出现的个数:(这里和前面写的文章:算法笔记--统计字符串中每个字符串的个数 类似)for(int i=0;i<len;i++){ if(ss[i]>='A'&&ss[i]<='Z'...原创 2020-03-06 16:07:23 · 215 阅读 · 0 评论 -
算法笔记--2的幂次方
牛客网--2的幂次方题目描述:题目分析:1.如何确定是2的多少次方int i=0; while(pow(2,i)<=n) i++;2.是否用到了递归代码:#include <iostream>#include <math.h>using namespace std;void print(int n){...原创 2020-03-06 15:31:12 · 434 阅读 · 0 评论 -
算法笔记—递归
1.吃糖果题目分析:(1)本题考虑递归(2)第一天吃1块,还有n-1块;第一天吃2块,还有n-2块,则吃巧克力的方案数=第一天吃一块后,n-1块的吃法+ 第一天吃两块后,n-2块的吃法;(3)边界条件 n=1时,方案数等于1;n=2时,方案数等于2;代码:#include<iostream&g...原创 2020-03-06 14:50:11 · 172 阅读 · 0 评论 -
算法笔记--知识点记录
1.浮点数格式化输出printf("a=%06d\n", a);//输出6位十进制整数 左边补0,显示 a=001234;这里%06d的0就是指在前面补0占位,6代表位宽。一般这两个要一起用。2.取绝对值函数头文件#include<math.h> int abs(int i) 返回整型参数i的绝对值 double cabs(struct co...原创 2020-03-06 14:27:38 · 136 阅读 · 0 评论 -
算法笔记--链表遍历
建立一个升序链表并遍历输出1.单链表结点定义typedef struct LNode{ int data; struct LNode *next;};2.假设有n个元素已经存储在数组a中,用尾插法建立链表Cvoid createlistR(LNode *&C,int a[],int n){ LNode *s,*r; //s用来指向新申请的结点,r始终指向C...原创 2020-02-26 11:32:28 · 326 阅读 · 0 评论 -
算法笔记--成绩排序
printf("a=%06d\n", a);//输出6位十进制整数 左边补0,显示 a=001234;这里%06d的0就是指在前面补0占位,6代表位宽。一般这两个要一起用。原创 2020-03-06 14:33:13 · 526 阅读 · 0 评论 -
算法笔记--二叉搜索树--判断两序列是否为同一二叉搜索树序列
题目来源:牛客网原创 2020-02-19 17:36:16 · 2690 阅读 · 5 评论 -
二叉树遍历-给定一棵二叉树的前序遍历和中序遍历,求其后序遍历
根据给定的前序遍历与中序遍历能够唯一确定后序遍历题目来源:牛客网原创 2020-02-19 12:53:57 · 7588 阅读 · 4 评论 -
算法笔记--二叉树-二叉树遍历
1.二叉排序树特点2.二叉排序树的建立3.二叉排序树算法题举例原创 2020-02-19 15:08:07 · 178 阅读 · 0 评论 -
算法笔记--sort函数在字符串排序中的应用
1.sort函数的使用2.pow函数的使用原创 2020-02-20 14:11:04 · 6002 阅读 · 0 评论 -
算法笔记-vector使用
参考资料:《算法设计与分析》赵瑞阳等清华大学出版社;牛客网1.vector介绍STL容器向量(Vector)是一个动态数组,随机存取任何元素都能在常数时间完成;是一个模板类和函数库。Vector是一个线性顺序结构,相当于数组,可以不预先指定数组的大小,并且能自动扩展。...原创 2020-02-18 20:34:22 · 470 阅读 · 0 评论 -
算法笔记--统计字符串中每个数字的个数
1.给定一个数字字符串(0-9),统计字符串中每个数字的个数(1)输入字符串#include<string>string a,b;cin>>a>>b;(2)初始化一个数组,用来记录每个字符串的个数int count[10];int i;for(i=0;i<10;i++){ count[i]=0;}for(i=0;i&...原创 2020-02-16 16:25:36 · 2406 阅读 · 0 评论 -
算法笔记-矩阵求幂
1.矩阵求幂#include<stdio.h>//如果把Pow写在main函数下面的话,需要加一句函数调用void Pow(int result[20][20],int a[20][20],int n){//注意函数的写法 int i,j,k; int c[20][20];//用于保存中间结果 for(i=0;i<n;i++) ...原创 2020-02-16 14:46:54 · 1293 阅读 · 0 评论 -
算法学习笔记
1.十进制转化为二进制(n(0<=n<=10^8))#include<cstdio>int main(){ int T,j,i; unsigned int n; int a[30]; scanf("%d",&n); for(i=0;(n/2)!=0;i++){ a[i]=n%2; n=n/2; ...原创 2020-02-15 18:38:37 · 139 阅读 · 0 评论 -
算法笔记-个位数统计
编写程序,输入一个整数,统计不同数字出现的次数。(算法笔记-p60)#include<cstdio>#include<cstring>int main(){ char str[1010]; gets(str); int len = strlen(str); int count[10]={0}; for(int i=0;i<len;i++){ c...原创 2020-01-30 16:27:36 · 254 阅读 · 0 评论 -
算法学习笔记二--
1.#include<cstdio>标准的C++头文件2.算法笔记-p6-ch3-B1011(1)整数的范围是[-2*31,2*31],所以定义整数时用long long A;%lld;(2)连续输入三个整数时,中间要加逗号;例scanf("%lld%lld%lld",&A,&B,&C);3.算法笔记-p8-ch3-B1016给定一个整数...原创 2020-01-14 18:48:59 · 115 阅读 · 0 评论 -
算法学习笔记--break语句
学习课程,北京大学郭炜老师的程序设计与算法课;break语句:在多重循环的条件下,break语句只能跳出直接包含它的那一重循环。例:如果两个不同的正整数,他们的和是他们的积的因子,就称这两个数为兄弟数,小的称为弟数,大的称为兄数。先后输入正整数n和m(n<m),请在n至m这m-n+1个数中,找出一对兄弟数。如果找不到,就输出“No Solution"。如果能找到,就输出和最小的那一对...原创 2020-01-12 11:58:44 · 893 阅读 · 0 评论