复试
文章平均质量分 70
T_Y9943
这个作者很懒,什么都没留下…
展开
-
复试11-补充
迷宫问题的思路 //2为重点,3为走不通,0为为走过,1为墙。 //注意if,else的东西,一定是先写if else,再写里面的东西、 public static boolean setWay(int[][] map,int i,int j){ if(map[6][5] == 2){ //到达终点 return true; }else { if(map[i][j] == 0){ //继续 .原创 2021-03-21 10:45:36 · 85 阅读 · 0 评论 -
复试10-额外的一些知识
哈夫曼树 一堆数据中选择最小的两个组成数然后返回那一堆数中,emmm tcpic协议 tcp协议的三层握手 红黑树 b-,b+树原创 2021-03-20 10:11:46 · 121 阅读 · 0 评论 -
复试09-数据结构2
上机一般更多考察二叉树的遍历 这里补充一点 二叉树的五种基本形态 1、空二叉树(没有一个结点); 2、只有一个根节点; 3、只有左子树; 4、只有右子树; 5、既有左子树又有右子树; 初试的时候忘了,卷子上没写出来,白白失去了6分。 那么 二叉树的遍历有 先序遍历 中左右 中序遍历 左中右 后序遍历 左右中 层次遍历 用队列 例题10.2 二叉树遍历 上面那个图就是意思是3种遍历已知两种的情况下求第三种,只有前序和后序的必须还加上满二叉树。 从上面中序后序的分析,就可以递归的依据p的位置来分析啦。原创 2021-03-19 17:20:18 · 64 阅读 · 0 评论 -
复试08-搜索
搜索一般由以下几种 状态空间 状态转移 起始状态 目标状态 上图就是个例子,下面是一个稍微修改要求的图 状态空间图一般比较大,很难在计算机中用这些。 可以转换为树来求解。 宽度优先搜索(BFS) 深度优先搜索(DFS) emm,就不做说明了。 例题9.1 简单来说,就是一个数组(0,100000)农夫在下标n的位置,牛在下标k的位置。农夫每次要么n+1,要么n-1,要么n*2. 假设牛没有意识到农夫在追它,在原地不动,农夫最少要多久找到。 这里需要注意的是 这两个点重复了,它们仅仅是时原创 2021-03-18 17:37:33 · 59 阅读 · 0 评论 -
复试07-递归与分治
这一部分就没那么多了, 递归:直接或间接调用自身。 递归一般有 递归出口 递归调用 这两部分。 例题8.1 这个问题就很简单了 static int jiecheng(int n){ if(n==1||n==0)return 1; return n*jiecheng(n-1); } Hanoi塔 设将n层完全移动过去要f(n) 将n-1曾完全移到中间需要f(n-1) 操作数f(n-1), 最下面那个大盘,移动操作数为f(1) 将中间n-1层移动过去,也小号原创 2021-03-17 21:36:27 · 77 阅读 · 0 评论 -
复试06-数字问题
数学问题,围绕着数理逻辑的问题 进制转换 GCD&LCM(最大公约束,最小公倍数) 质数&质数因子 快速幂 矩阵&矩阵快速幂 高精度整数 进制转换 10->N M->10 M->N 例题6.1 二进制数 找到一个偷懒的办法。 10进制转化其他进制 对应的方法,参数:n(原10进制数据),r(进制), 返回值 10进制转2进制 Integer.toBinaryString(n); 一个二进制字符串. 10进制转8进制 Integer.t原创 2021-03-15 11:40:51 · 171 阅读 · 0 评论 -
复试05-线性数据结构
由于数组是固定长度的数据结构, 但是某个时候我们需要额外的数据结构。 一般来说,有表list这种数据结构。队列,栈,堆 表分为: 数组列表,链表,单链表,单循环双循环。 为什么要活动数组? 因为数组中插入元素和删除元素很费时间,要移动整个数组。而且不方便 我们数据量不确定的时候。 一般有下面两种表 ArrayList和Vector. 但我一般用ArrayList。这样更方便一点。两者基本用法差不多。 public class d6 { public static void main(String[]原创 2021-03-12 19:34:55 · 42 阅读 · 0 评论 -
复试04-字符串
字符串一般有以下几种操作 遍历 加密 统计 匹配 String的重要: 构造 操作 运算 函数 字符串的常用操作有: 5. 拷贝 6. 截取 public class d1 { public static void main(String[] args) { String str = new String("ABCdefAghij3"); System.out.println(str.charAt(1));//位置1的字符是什么 System.原创 2021-03-11 15:47:51 · 63 阅读 · 0 评论 -
复试03-查找和排序2
排序完了后我们就开始做查找这一部分了, 查找的常用方法为: 线性查找O(n) 二分查找O(logn) -----必须是有序序列 散列查找O(1)-----利用散列表(哈希表) 例题3.5 import java.util.Arrays; import java.util.Scanner; public class c7 { public static void main(String[] args) { Scanner scanner = new Scanner(Syste原创 2021-03-09 20:39:58 · 55 阅读 · 0 评论 -
复试03-查找和排序
很多时候,不需要自己写一个排序查找算法,只需要借用写好的。 虽然有写好的,但是我那边学校招生简章上要求是java或c。没有c++所以说有可能需要自己写算,不能直接调用,因为c的函数库不太了解。 如果有ide的话就直接看源码好了。看完再调用测试。 Arrays工具类有2个常用的方法 import java.util.Arrays; Arrays.sort(int[] a, int fromIndex, int toIndex);//仅排序fromIndex到toIndex下标的数据 Arrays.sort(原创 2021-03-09 10:43:09 · 77 阅读 · 0 评论 -
复试-02-暴力
一般有1、2道简单题,暴力是最快的。 暴力求解 枚举、所有可能的情况 模拟、分析数据量。 可以看到绝大程序是要求1000ms到2000ms。绝大多数程序的数据量是10^7次方的运算 所以说,估算一下数据量大小,比如说想到一个O(n2)的算法,而数据量是105的时候,一定会超出时间限制。 所以我们这时候要想到用O(nlogn)的算法,才能通过。 还有一种就是 log1+log2+log3+…+logN = O(nlogn) 例题2.1 枚举a,b,c3个数,很容易得出时间复杂度是O(n3) 对应原原创 2021-03-04 15:22:12 · 80 阅读 · 0 评论 -
复试-01-从头开始
题目大概 题目描述,输入,输出,,样例输入,样例输出,等就类似于蓝桥杯大概的题吧。 在本地写代码,测试完毕后提交到评测系统。评测系统会返回如下几个结果 Accepted Wrong Answer(部分或全部测试结果不对)–从正确性,算法正确上思考;鲁棒性,对边界数据,大数据等差异较大。 Presentation Error(格式错误,输出是对的,未按照题目要求格式)–多余空格,换行,或少空格,换行等 Time Limit Exceeded(超出限制时间)–正确性,可能写了死循环;高效性,超出题目要求的时原创 2021-03-01 14:58:46 · 53 阅读 · 0 评论