自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gl620321的博客

本网站/论坛/博客经许可他人后建立友情链接,但链接所指向的内容应是本网站/论坛/博客首页。

  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 最小可用ID(4种方法,详细讲解)

三、最小可用ID:在非负数组(乱序)中找到最小的可分配的id(从1开始编号),数据量1000000

2020-02-23 15:48:37 1586 5

原创 经典排序:第k个元素(快排和双向扫描法)

一、第k个元素:以尽量高的效率求出一个乱序数组中按数值顺序的第k个元素乱序数组法一:利用快速排序,算法时间复杂度O(Nlogn)法二:利用分区排序法(双向扫描法)依次与主元比较,比主元大的排在右面不变,比主元小的指针交换位置,得到如下数组伪代码selectk(A,p,r,k){ q=partition(A,p,r); //q主元的下标 qk=q-p+1; //主元是...

2020-02-22 21:51:51 310

原创 归并排序(数组指针详细讲解,图例分析)

归并排序思路:依照分治模式分解:将n个元素分成各含n/2个元素的子序列;解决:对两个子序列递归地排序合并:合并两个已排序的序列的子序列以得到排序结果和快排区别:归并的分解较为随意,重点是合并...

2020-02-21 21:43:03 484

原创 三分法:有相同元素值快速排序(双向扫描出现3个指针)

在双向扫描的时候,会出现小于等于的情况,这时用三分法,用三个指针,把区间分为4块,如图所示,左指针向右扫描,小于主元的元素保持原位置不变,当出现等于主元的元素的时候,eq指针移动到等于主元元素的位置交换之后继续扫描当出现以下的局面的时候,这时eq停留在第一个相等元素的位置sp继续扫描未知区间,若是相等合并到eq区间,小于则和eq指针交换,大于则是与r指针交换总结:小于主元,sp位置和eq...

2020-02-20 22:00:58 976

原创 双向扫描法

双向扫描法思路:头尾指针从两端往中间扫描,从左找到大于主元的元素,从右找到小于等于主元的元素二者交换,继续扫描,直到左侧的元素都大于等于右侧的元素。1.一般以第一个元素作为主元(基准),左指针指向第二个元素,右指针指向最后一个元素,左指针指向的元素要是小于或等于主元,继续向右扫描,右指针指向的元素大于主元,所在位置元素保持不变,继续向左扫描。2.当左指针指向的元素大于主元,与右指针此时指向的...

2020-02-20 21:22:32 2970

原创 分治法:快排划分法(单向扫描法)

一、分治法将一个规模较大的问题转化为多个相同形式小规模的子问题,子问题规模较小时,可自然求解。子问题的解可通过合并得到原问题的解。举例:小明让小张和小李去借2000元,小张借1000,小李借1000,他们各自向朋友去借,这就是一个分治问题二、一遍单向扫描法:思路:用两个指针将数组划分为三个区间。扫描指针左边是确认小于等于主元的。扫描指针右边是确认大于主元的...

2020-02-20 13:00:48 822

原创 在有空字符串的有序字符串数组中查找(找给定字符串)

题目:在有空字符串的有序字符串数组中查找有个排序后的字符串数组,其中散步一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引。package zifusearch;public class Chuan { public static void main(String[] args) { String[] arr= {"a","","ac","ad","b","","...

2020-02-19 21:37:44 391

原创 递归法:走楼梯; 旋转数组的最小数字(递归法和改进二分法)

题目:走楼梯小明在走楼梯,楼梯有n阶台阶,一次可以上1阶,2阶或者3阶,实现一个方法,计算小明有多少种走楼梯的方式package louti;import java.util.Scanner;public class Floor { public static void main(String[] args) { Scanner sc=new Scanner(System.in)...

2020-02-19 20:48:55 209

原创 递归法:汉诺塔(快速掌握)

汉诺塔分析:转换柱子的角色,和辅助柱子发现从递归角度:将1-N与2-N移动到B之后,在C不动的情况下,并不是同一个等价形式;经过转化之后:以下形式与原来的1-N等价把1-N-1移动到C,N移动到B,当N移动到B柱子之后,不会再移动,这时可以将B看为空柱子1-N-2移动到A,N-1移动到B上图中将A柱子作为辅助//N:初始的N个从小到大的盘子,N为最大的编号//from:原始的柱子 ...

2020-02-19 13:30:26 434

原创 递归法 最大公倍数 斐波那契数列 数组插入排序改递归

辗转相除法:例如:m%n=0;能够整除则n为最大公倍数若m%n=k,不能够整除的话,继续辗转相除变为n%k若n%k=c,不能整除的话继续这样…核心代码static int gcd(int m,int n){ if(n==0) return m; return gcd(n,m%n);} 斐波那契数列转化为二叉树:...

2020-02-18 21:46:24 168

原创 2018年蓝桥杯C++B;乘积尾零(拆分法)

题目:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 98991486 5722...

2020-02-18 20:36:40 307

原创 递归法:快速掌握递归核心方法

递归我的理解就是方法或函数调用自己就称为递归1.分解为:直接量+小规模问题2.分级为:小规模问题要想计算f(10),就需要知道f(9),算f(9)需要计算f(8)特点:1.自身调用自身2.避免死循环方法:1.找重复(找更小规模的子问题(和原问题具有相同的形式);求n的阶乘,先求n-1的阶乘。。。。)2.找变化(哪些东西在变化,求n的阶乘,先求n-1的阶乘,。。。。将变化的量作...

2020-02-18 19:56:12 1908

原创 2019蓝桥杯C++B:等差数列(详解)

问题:等差数列数学老师给小明等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中N个整数。现在给出这N个整数,小明想知道包含N个整数的最短的等差数列有几项?输入格式:输入的第一行包含一个整数N第二行包含N个整数A1,A2,…AN(注意A1-AN并不一定·按等差数列中的顺序给出)输出格式:输出一个整数表示答案样例输入;52 6 4 10 20样例输出:10...

2020-02-18 12:45:34 1403

原创 2019蓝桥杯C++B组 年号字串;完全二叉树的权值

填空题问题:小明用字母A对应数字1,B对应数字2,以此类推,用Z对应26,。对于27以上的数字,小明用两位或更长位的字符串来对应,例如AA对应27,AB对应28,AZ对应52,LQ对应329请问2019对应的字符串是什么?27-702为AA-ZZ...

2020-02-18 11:22:44 277

原创 给定N个加号,M个减号以及N+M+1个整数,A1+A2+...+Am+An+1,小明想知道在所有由这n个加号,M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?

**问题;**给定N个加号,M个减号以及N+M+1个整数,A1+A2+…+Am+An+1,小明想知道在所有由这n个加号,M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请输出这个最大的结果。假如使用1 2 3+ -,则“2 3 + 1 -”这个后缀表达式的结果是4,是最大的。输入格式:第一行包含两个整数N和M第二行包含N+M+1个整数 A1,A2,…AN+...

2020-02-17 21:57:25 2493 2

原创 2018年蓝桥杯c++B:搭积木(前缀和)

标题:搭积木小明对搭积木非常感兴趣。他的积木都是同样大小的正立方体。在搭积木时,小明选取 m 块积木作为地基,将他们在桌子上一字排开,中间不留空隙,并称其为第0层。随后,小明可以在上面摆放第1层,第2层,……,最多摆放至第n层。摆放积木必须遵循三条规则:规则1:每块积木必须紧挨着放置在某一块积木的正上方,与其下一层的积木对齐;规则2:同一层中的积木必须连续摆放,中间不能留有空隙;规则3...

2020-02-17 21:07:58 845

原创 2018届c++B 格雷码;调手表(lowbit运算)

3.标题:格雷码(填空题)格雷码是以n位的二进制来表示数。与普通的二进制表示不同的是,它要求相邻两个数字只能有1个数位不同。首尾两个数字也要求只有1位之差。有很多算法来生成格雷码。以下是较常见的一种:从编码全0开始生成。当产生第奇数个数时,只把当前数字最末位改变(0变1,1变0)当产生第偶数个数时,先找到最右边的一个1,把它左边的数字改变。用这个规则产生的4位格雷码序列如下:00...

2020-02-17 13:41:14 248

原创 2018年c++B:换零钞;激光样式(递归法和暴力破解)

填空题1.题目:x星球的钞票面额只有100元,5元,2元,1元,共4种。小明去x星旅游,他手中只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍,剩下的当然都是5元面额的。银行的工作人员有点为难,你能帮助算出:在满足小明要求的前提下,最少要换给他多少张钞票吗(5元,2元,1元面额的必须都有,不能...

2020-02-17 12:45:58 263

原创 递归法:递归实现排列型

把1-n这n个数排成一行后随机打乱顺序,输出所有可能的次序输入格式:一个整数n输出格式:按照从小到大(顺序输出所有方案,每行1个)同一行相邻两个数用空格隔开对于两个不同的行,对应下标数一一比较,字典序娇小的排在前面数据范围:1<<n<<9...

2020-02-15 17:44:07 269

原创 递归法:实现指数型枚举(二叉树递归)

问题:从1-n这n个整数中随机选取任意多个,输出所有可能选举方案输入格式:输入一个整数n输出方案:每行输出一种方案同一行中的数必须升序排列,相邻两个数之间用空格隔开对于没有任何数的方案,输出空行数据范围:1<=n<=15输入样例:3输出样例:322 311 21 31 2 3...

2020-02-15 16:30:02 248

原创 递归法:财务金额漏掉1笔或者几笔(排列组合)

问题:某财务部门结账时发现金额不对,很可能是从明细上漏掉了一笔或者几笔,如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或者几笔吗?如果有多种可能,则输出所有可能的情况我们规定,用户输入的第一行是:有错的总金额。接下来是一个整数n,所有可能漏掉的金额组合,每个情况1行,金额按照从小到大排列,中间用空间分开比如:用户输入:6532431表明:有错的总金额是6,明细共有5笔...

2020-02-14 10:42:24 172

原创 递归法:整数划分问题(怎么进行划分呢)

问题:整数划分问题例如,正整数6有如下11种划分:6;5+1;4+2,4+1+1;3+3,3+2+1,3+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;1+1+1+1+1+1;代码:package zhf;public class Zhf { public static void f(int n,int[] a,int k) { //数组a用来存放分解之后的元...

2020-02-13 21:20:27 319

原创 递归法:计算m个A,n个B可以组合成多少种排列问题?

问题:计算m个A,n个B可以组合成多少种排列问题?假设:计算3个A,2个B可以组合成多少种排列问题?举例:AAABB BABAA…方法:采取分割思想将第一个与后面的分开,划分为两部分,变得好解决第一个字母为A时f(m-1,n)第一个字母为B时f(m,n-1)package pailie;public class Pai { public static int f(in...

2020-02-13 19:51:55 2925

原创 递归法:杨辉三角,计算第m层的第n个系数

(a+b)的n次幂的展开式中各项系数有规律,对于n=2,3,4时分别为1 2 1,1 3 3 1,1 4 6 4 1,如下图当把上面的图片经过转化后变为11 11 2 11 3 3 11 4 4 6 11 5 10 5 1找到规律:第一层1个元素,第2层两个元素,第n层有n个元素第3...

2020-02-12 20:17:15 819

原创 递归法:反转串

反转串:把"abc"经过反转变为“cba”,这样的串称为反转串。package fanzhuanchuan;public class Chuan { public static String f(String s) { if(s.length()<=1) //当字符串到只剩一个或者空串的时候,打印输出结果 return s; return f(s.substrin...

2020-02-12 19:38:37 160

原创 递归法:求n个元素的全排列

问题:求n个元素的全排列举例:ABC 其全排列有ABC ACB BAC BCA CAB CBApublic class Quan { public static void f(char[] data,int k) //k为当前需要交换元素的位置,与它后面的元素交换 { if(k==data.length) { //当k交换到最后一个元素的位置时,打印输出结果 for(...

2020-02-11 22:57:44 4385

原创 递归法:求两个串的最大公共子序列的长度

问题:求两个串的最大公共子序列的长度举例:子串: abcgxs 与sabxfh 其最大公共子序列的为abx,长度为3public class Zixulie { public static int f(String s1,String s2) //定义两个串 { if(s1.length()==0 || s2.length()==0) //如果两个串的长度度为0...

2020-02-11 22:29:46 270

原创 n皇后问题(在棋盘上找方案)

**N皇后问题:**在nN的棋盘上放置彼此不受攻击的n个皇后。皇后可以攻击与之处在同一列或同一行或同一斜线上的棋子。n皇后的问题等价于在nn格的棋盘上放置n个皇后,任何两个皇后不放在同一行或同一列或同一斜线。//编程要求:找出一个n*n格棋盘上放置n个皇后并使其不能互相攻击由于棋盘的每列只有一个皇后,所以可以用一维向量X(x1,x2,…xn),其中xi{1,2,…,n},表示第i列皇后所在的...

2020-02-11 15:47:29 1392

原创 递归法:从n个小球中取m个小球(不放回),共有多少种取法?

从n个小球中取m个小球(不放回),共有多少种取法?利用假设法设3个球A,B,C,任意取出2个,可分为取出的球中含A的部分和不含A的部分。即AB,AC为一组,BC为一组。4个A,B,C,D里面取3个,结果为:ABC,ABD,ACD,BCD,一共4种取法设函数F(n,m)return F(n-1,m-1)+F(n-1,m) 假设一个特殊的球A,把整个取法分为含A的部分和不含A的部分,进行...

2020-02-11 15:44:31 2817

计算机组成原理-思维导图源文件

计算机组成原理思维导图框架,各个章节内容非常详细,可以根据自己的需求进行二次编辑,增加对于知识的熟悉程度

2024-03-01

计算机网络-思维导图源文件

计算机网络思维导图,通过思维导图框架可以快速学习计算机网络的内容,包括物理层,数据链路层,网络层,传输层,会话层,表示层,应用层的全部内容,对计算机网络有一个全面的认识。

2024-03-01

操作系统-思维导图源文件

操作系统——思维导图,可以快速了解OS各个模块的学习内容,思维导图框架具体详细,对整体学习OS有一个认识。

2024-03-01

学生成绩管理系统(源代码)

学生成绩管理系统包括:增加学生信息 、显示学生信息、学生成绩排序 、删除学生信息、学生信息查找 、修改学生信息、学生成绩保存、学生成绩统计、系统安全退出

2020-04-21

Java实验报告(包含课后习题).docx

Java实验报告详细代码第1章-第10章(部分课后重点习题),附代码运行截图,实验3:Java流程控制,实验4:Java类与对象,实验5:Java包的使用与访问控制,实验6:Java继承与多态,实验7:Java 抽象类,实验9:数组与字符串,实验10:Java常用类与日期类

2020-04-21

空空如也

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

TA关注的人

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