自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeetCode:求链表中倒数第k个节点(Python)

题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。解题思路:**解法一:**先遍历统计链表长度,记为 n ;设置一个指针走 (n-k)步,即可找到链表倒数第 k 个节点。解法一代码:if __name__=='__main__': Linklist=list(map(int,input().st

2020-07-31 15:43:07 299

原创 20200722阿里笔试题1:输出n个数(C/C++),全排列思想的应用

题目描述:有n个物品编号为1-n,现将其重新排列,但要求相邻两物品的编号差值的绝对值不等于1,按字典序输出所有满足要求的方案。输入描述:每组输入一个整数n,1<=n<=10;输出描述:对于每组测试数据:按照字典序输出满足要求的序列,若没有满足的,不用输出任何东西。示例:输入:4输出:2 4 1 33 1 4 2思路:利用全排列的思想,先进行全排列,当存在相邻两数的差值为1时即为不满足条件的排序。去除不满足条件的排序即可。#include<cstdio>#in

2020-07-22 10:50:49 550 1

原创 算法笔记:全排列(C/C++)

题目描述:一般把1~n这n个整数按某个顺序摆放的结果称为这n个整数的一个排列,而全排列只这n个整数能形成的所有排列。例如1、2、3这三个整数的全排列为123、132、213、231、312、321。这些是按照字典序从小到大的顺序给出的。解题思路:从递归的角度去考虑,如果把问题描述为“输出1~n这n个整数的全排列”,可以被分为若干个子问题:“输出以1开头的全排列”“输出以2开头的全排列”…“输出以n开头的全排列”。可以设一个数组P,用来存放当前的排列,再设置一个散列数组,hashTable[x],当x已

2020-07-02 16:46:54 341

原创 算法笔记:字符串哈希初步

问题描述:给出N个字符串,每个字符串由三位大写字母组成,再给出M个查询字符串,问每个查询字符串在N个字符串中出现的次数?解题思路:把字符串转化为整数,利用空间来换时间效率。代码:...

2020-07-02 10:32:36 150

转载 数据库中Schema(模式)概念的理解

在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念。实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主

2020-07-01 20:28:21 227

原创 N进制转化为10进制的两种方法(Python)

今天第一次发现N进制转10进制竟然有两种方法,除了经常用的那一种之外,还有一种方法。话不多说,开始讲解方法吧:假设我们有一个26进制的数 : 123,要把它转化为10进制的数Q,两种方法分别如下:方法一:Q=3*(260)+2*(261)+1*(262)=3+52+676=731方法二:Q=(1*26+2)*26+3=731为了验证方法二的准确性,我们编程验证一下:Python代码如下:def fun1(N,jinzhi): Q=0 product=1 while N !

2020-07-01 16:36:14 3081 1

原创 算法笔记:哈希表的入门使用(C/C++)

问题描述:给出N个正整数,再给出M个正整数,问这M个数中的每个数分别是否在N个数中出现过。N、M <= 10^5;eg:N=5,M=3,N个正整数为{8,3,7,2,6},欲查询的M个正整数为{7,2,4},于是后者中只有7和2在N个正整数中出现过。问题解答:常规思路是:对每个要查询的正整数x,遍历所有N个数,看是否有一个数与 x 相等。这种做法的时间复杂度是O(NM),当N和M都很大时,时间复杂度便会无法承受。改进思路:可以用空间换时间,即设定一个 bool 型数组 HashTable[1

2020-06-29 23:08:59 281

原创 算法笔记:PAT Ranking(C/C++)

题目描述:有n个考场,每个考场有若干数量的考生。现在给出各个考场中考生的准考证号与分数,要求将所有考生按分数从高到低排序,并按顺序输出所有考生的准考证号、排名、考场号及考场内排名。Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in

2020-06-22 10:51:12 179

原创 C++标准模板库(STL)之sort函数

C语言中,有很多东西需要读者自己去实现,如果不好实现的话还会容易出错。为了简化这些,C++为使用者提供了标准模板库(Standard Template Library,STL),其中封装了很多相当实用的容器。(容器可以暂时理解为能实现很多功能的东西。)今天来看一下STL中的sort函数:基本介绍:sort函数是用来排序的函数,它可以根据情形使用不同的排序方法,效率较高。sort函数在实现时规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。1、sort的使用sort函数的使

2020-06-17 21:31:52 850

原创 插入排序又来啦(C/C++版)

直接上代码啦:这个插入排序还是要理清思路,要不然还挺容易弄迷糊的。在写的时候最好向代码中那样命名。当前需要出入的元素命名为 current,该元素前一个的下标命名为 perIndex=i-1;插入排序可以分为两层遍历:第一层遍历,从第一个元素到最后一个元素,把它插入到合适的位置。第二层遍历,针对要插入的第 i 个元素,从 i-1开始倒序,如果arr[perIndex]大于 current,则arr[perIndex+1]=arr[perIndex],即元素后移,给要出入的元素腾出位置。#include

2020-06-17 20:43:55 90

原创 从选择排序看C++和Python的不同

#include<cstdio>#include<cstring>//首先是定义函数的不同,Python是用def开头+函数名+参数void SelectSort(int arr[]) //C++数组传入是 arr[],而不是 arr=[] 也不是 arr=[20]之类的,在C++里如果传入的数组需要填写长度,应该为 arr[20]{ for(int i=0;i<8;i++) { int minIndex=i; // 所有变量在使用前都要声明 数据类型

2020-06-17 16:43:16 144

原创 选择排序又来啦(C/C++版)

选择排序是最简单的排序方法,时间复杂度是O(n^2).这里就不再介绍选择排序啦,直接上代码啦:#include<cstdio>#include<cstring>void SelectSort(int arr[]) { for(int i=0;i<8;i++) { int minIndex=i; for(int j=i+1;j<8;j++) { if(arr[minIndex]>arr[j]) { minIndex=j;

2020-06-17 16:29:48 86

原创 算法笔记:说反话(C/C++和Python)

题目描述:给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。**输出格式:**每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World HelloC/C++代码:在开始之前,再复习一

2020-06-17 15:54:43 209

原创 算法笔记:回文数(C/C++和Python)

题目描述读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。C/C++代码:#include<cstdio>#include<cstring>const int MAXN=256;bool judge(char str[]){ int len=strlen(str); for(int i=0;i<len/2;i++) { if(str[i]!=str[len-1-i]) r

2020-06-17 11:49:05 247

原创 算法笔记:又一版 A+B(Python和C/C++)

题目描述输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。输入输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。输出输出格式:每个测试用例的输出占一行,输出A+B的m进制数。C++代码:#include<cstdio>int main(){ long long A,B,sum; int m; while(scanf("%d",&m)!=

2020-06-17 11:20:07 299

原创 C/C++进制转换(不可不看)

对于一个P进制的数,如果要转化为Q进制,需要分两步:1、将P进制数x转换为十进制数y。2、将十进制数y转化为Q进制数z 。代码实现:1、将P进制数x转换为十进制数yint y=0,product=1;while(x!=0){ y = y+(x%10)*product; x=x/10; product=product*p;}2、将十进制数y转化为Q进制数zint z[40],num=0;do{ z[num++]=y%Q; y=y/Q;}while(y!=0);这里注意

2020-06-17 10:22:59 226

原创 算法笔记:查找学生信息(C/C++)

题目描述输入N个学生的信息,然后进行查询。输入输入的第一行为N,即学生的个数(N<=1000)接下来的N行包括N个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:02030104输出输出M行,每行包括一个对应于查询的学生的信息。如果没有对应的学生信息,则输出“No Answer!”C++代码:(跑分只有50!好

2020-06-16 22:37:45 1651 1

原创 算法笔记: A+B和C(C/C++和Python)

题目描述给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。输入输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。注意:做这个题主要是int型范围的把控,int是占用4个字节,共32位,存储范围是-2147483648~2147

2020-06-16 18:21:18 520

原创 算法笔记:比较奇偶数个数(C/C++和Python)

题目描述第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。输入输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000)。输出如果偶数比奇数多,输出NO,否则输出YES。C/C++代码:#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){ char a[15],b

2020-06-16 17:03:30 366

原创 算法笔记:特殊乘法(C/C++和Python)

题目描述写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35输入两个小于1000000000的数输出输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。说明:对于这种类型的题,输入的数据位数很多,数据很大时,可以把数据按照字符串输入,之后按照字符串的操作进行,当需要计算时,再把字符串转化为整型。C/C++代码:#include<cstdio>#in

2020-06-16 11:36:57 243

原创 算法笔记:A+B(C/C++和Python)

问题描述:给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。现在请计算A+B的结果,并以正常形式输出。C/C++代码:#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){ char a[15],b[15]; while(scanf("%s %s",a,b)!=EOF) { int flaga=1,flagb

2020-06-15 21:04:42 397

原创 算法笔记:剩下的树(C/C++和 Python)

题目描述有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。输入两个整数L(1<=L<=10000)和M(1<=

2020-06-15 16:48:18 274

原创 算法笔记:挖掘机技术哪家强(C/C++和Python)

为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过10^5​​ 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。C/C++代码:#include<cstdio>const int maxn=100010;int school[maxn]={0};int main()

2020-06-15 15:37:28 229

原创 算法笔记:3n+1猜想(C/C++和Python)

题目描述:对于任何一个自然数n(n<1000),偶数就砍一半,奇数就3n+1再砍。按这样的规则看下去,求最终得到1所需的步数(砍了多少次?)C++代码#include<cstdio>#include<cstring>int main(){ int n,step=0; scanf("%d",&n); while(n!=1) { if(n%2==0) { n=n/2; step++; } else { n=3*n+1

2020-06-15 12:06:17 313

原创 黑盒测试及其中的单点测试和多点测试

黑盒测试是指:系统后台会准备若干组输入数据,然后让提交的程序去运行这些数据,如果输出的结果与正确答案完全相同,那么就称通过了这道题的黑盒测试,否则会根据这道题的错误类型而返回不同的结果。其中,根据黑盒测试是否对每组测试数据都单独测试或是一次性测试所有数据,又可以分为单点测试和多点测试。单点测试:对于单点测试来说,系统会判断每组数据的输出结果是否正确。如果输出结果正确,那么对该组数据来说就通过了测试,并获得了这组数据的分值。在这种情况下,题目的总得分等于通过的数据的分值之和。从代码上来说,单点测试

2020-06-15 11:51:56 2277

原创 结构体及结构体初始化方法:构造函数

构造函数是用来初始化结构体的一种函数,它直接定义在结构体中。它不需要写返回值类型,而且函数名和结构体名相同。我们在定义结构体时,系统会自动生成一个构造函数,但是这个构造函数不需要传入任何参数。我们可以自己手动定义构造函数。而且在一个结构体中,可以有多个构造函数,在调用时,根据参数判断需要调用哪个构造函数。关于结构体的一些小知识:结构体里面可以定义除了自己本身之外的任何数据类型。不过虽然不能定义自己本身,但是可以定义指向自身类型的指针变量。...

2020-06-15 11:01:57 622

原创 C/C++指针、引用相关小知识

变量的地址:变量的地址一般指它占用的字节中第一个字节的地址。也就是说,一个int型的变量的地址就是它占用的 4Byte当中第一个字节的地址。在一个变量前面加上&,就表示变量的地址。指针实际上是表示内存地址的一个整数,它是一个unsigned类型的整数。在C语言中,数组名也可以作为数组的首地址使用。使用指针变量作为函数参数:指针类型也可以作为函数参数对的类型,这时视为把变量的地址传入函数。如果在函数中对这个地址中的元素进行改变,原先的数据就会确实的被改变。注:在进行函数书写..

2020-06-15 10:38:52 122

原创 C/C++中,数组作为函数参数传入

函数的参数可以是数组,且数组作为参数传入时,参数中数组的第一维不需要填写长度,如果是二维,那么第二维需要填写长度,在实际调用时也只需填写数组名。最重要的是,数组作为参数时,在函数中对数组元素的修改就等同于对原数组元素的修改。需要注意的是,虽然数组可以作为参数...

2020-06-15 09:53:02 1548

原创 经典解电报的题目来啦(C/C++和Python)

题目描述:有一行电文,已按如下规律译成密码:A–>Z a–>zB–>Y b–>yC–>X c–>x… …即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。做这个题主要是转化的方法:当是小写字母时,转化前后的字母ASCII 码相加总是为219;当是大写字母时,转化前后的ASCII码相加总是155.C++程序如下:#include&

2020-06-14 22:20:36 1026

原创 C/C++解决杨辉三角形

直接上代码喽~#include<cstdio>int main(){ int a[100][100]; int n; scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<i+1;j++) { if(j==0||j==i) # 该第一或者最后一个元素为1 { a[i][j]=1; } else { a[i][j]=a[i-1][j-1]+a[i-1][j

2020-06-14 21:21:24 339

原创 杨辉三角形(超级简单的Python实现方法)

杨辉三角形大家都知道,那么在这里就不再介绍了,大家肯定都用C/C++实现过杨辉三角形,是把数据存放在了一个二维数组里,那么如何让用Python来实现杨辉三角形呢?我查看了网上的很多方法,都很麻烦,有的还用到了生成器,那我们来看看简单的方法吧!其实,在Python中,二维数组就可以用列表的列表来表示。在这里,我们就把数据存放在列表的列表中。在杨辉三角形中,有一个很大的规律:就是每一行的第一个和最后一个都是1,那中间的数据是怎么生成的呢?中间的数据其实就是一个公式:(假设n表示行,m表示列)list

2020-06-14 20:59:39 26422 3

原创 C/C++字符数组(注意事项)

C/C++中,字符数组的输入有很多种,但是每种情况都是不一样的,一定要把字符数组的每种输入输出的情况弄清楚,这样才能在不同的情况下使用不同的方法。1、字符数组的初始化方法一、如果要初始化的字符串种还有空格,应该把空格也当作一个字符输入,注意,字符是使用单引号。char str[15]={'G', 'o', 'o', 'd', ' ', 's', 't', 'o', 'r', 'y', '!'};方法二、直接使用字符串初始化,但是仅限于在初始化时使用,程序其他位置不允许这样直接赋值整个字符串。

2020-06-14 16:40:31 1065

原创 冒泡排序又来啦(C/C++版本)

这次就不介绍了,直接上代码喽:#include<cstdio>int main(){ int a[10]={0,3,1,6,8,2,4,9,5,7}; for(int i=1;i<10;i++){ for(int j=0;j<10-i;j++){ if(a[j]>a[j+1]){ int temp; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(int i=0;i

2020-06-14 12:03:11 119

原创 C++数组知识注意点

一位数组:在定义时最好初始化,初始化方式如下:假设把数组全部初始化为0,则有如下方式:1、a[10]={} ;2、a[10]={0};3、使用memset函数二维数组使用注意事项:在使用数组时,一定要注意,如果数组大小较大(大概10^6级别),则需要将数组定义在主函数外面,否则会使程序异常退出。原因使函数内部申请的局部变量来自系统栈,允许申请的空间较小;而函数外部申请的全局变量来自静态存储区,允许申请的空间较大。memset函数:对数组中每一个元素赋相同的值mems..

2020-06-14 11:39:04 261

原创 Python刷题输入输出

a=123b=456sum=a+bprint('sum=%d'%(sum))

2020-06-11 09:44:46 524

原创 Python怎么从键盘接收由空格分隔的两个数

我们知道python非常简单好用,但是我觉得python的输入输出格式是一个很麻烦的东西。比如说我们在进行刷题时,经常会遇到从键盘输入由空格分隔的某些数,这样的话,对python来说就不太好解决。那么如何从键盘输入由空格分隔的两个数呢?请继续往下看:a,b=map(int,input().split())sum=a+bprint(sum)我们利用input()函数接收键盘输入的数字,这个时候是 str 类型的,针对这个字符串利用 split()函数进行划分, split() 通过指定分隔符对字符

2020-06-11 09:37:53 3653

原创 又差点忘了更新了!!!!

最近在看数据库了,数据库感觉还是挺简单的,因为之前做过数据库的一些项目,所以整体看上去还行,不是太费劲,但是感觉还是要对比着面经看,要不然很容易看偏。这两天自己状态不太好,看书时也总是容易困,效率不太好,所以等过了这几天,我准备出一个数据库的一般知识点。另外,自己准备把之前学的C/C++拾起来啦,因为感觉只会一种语音好像不太行,还是要好好看看C/C++的,最起码,要能够用C/C++编代码。我准备结合着Python,好好练题啦!给我加油吧!希望自己能够找到一个好的工作。最后吧,希望自己身边都是

2020-06-10 20:12:44 98

原创 五大常用算法之五:分支限界法(最详细全面的讲解)

分支限界法一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度优先的策略,依次搜索E-结点的所有分支,也就是所有相邻结点,抛弃不满足约束条件的结点,其余结点加入活结点表。然后...

2020-06-08 17:58:59 18790 1

原创 五大常用算法之四:回溯法(最详细全面的讲解)

1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。2、基本思想在包含问题的所有解的解空间...

2020-06-08 17:57:30 2903

原创 最长公共子串与最长公共子序列的区别

子串:指的是从原串中取出连续几个字符的组成的串。eg:原字符串为:sdfghet--------->子串为:dfgh子序列:是指一个序列中,由若个数(字母)组成,然后从中任意删掉几个数(字母),保留剩下的数(字母)构成了一个序列,即称子序列。(或者从一个序列中,任意选取若干数或字符,按照这些数或字符原来的排序组成新的序列,即称子序列)。eg:sdfghet---------->子序列为:dght(即:字符不必是连续的)。...

2020-06-08 17:10:17 393

hw性格测试1.0.xlsx

文件资源是华为性格测评的答案,仅供参考哦~,因为华为的性格测评要求比较严,一不小心就会挂掉,按照文件中给的建议,很容易就能通过~

2020-11-23

python3实例.zip

Python新手编程练习,帮你打牢每一个知识点,再也不用担心新知识刚学就忘了,里面包含了35个常见问题,对新手友好。

2020-05-06

空空如也

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

TA关注的人

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