- 博客(5)
- 收藏
- 关注
原创 2018武大计院夏令营记录
笔试:一、程序设计1.求数的“相反数”,例如:命令行输入1234,首先反转得到4321,然后用1234+4321=5555。5555就是1234的相反数。2.数组排序,要求时间复杂度为O(n),空间复杂度为O(1)。3.二、数据结构1.书Book结构体,有ABC三种书名,书名用0、1、2分别表示。现在有一个存储书(乱序排列)的顺序表。要求按012的顺序排列这些书。2.用两个栈S1,S2实现队列的入...
2018-07-08 19:34:00
1446
1
原创 算法训练(四)含环链表的系列操作
题目一:若有一个链表,如何判断链表是否存在环?思路:如何判断有环,这里思考之后发现,判断是否有环可以参考两个人走路,一前一后,一快一慢。如果有环,两人必定相遇。因此这次也采用这种思路首先写一个链表类private class Node { private int data; private Node next; public Node(int data) { ...
2018-04-20 22:48:18
141
原创 算法训练(三)把奇数放到偶数前面
题目:将数组中所有的奇数放到偶数前面,并且不改变奇数和偶数的相对位置例如 1234567变为1357246思路:这里如果考虑遍历一遍数组,将会使时间复杂度为O(n)。于是采用双指针的方法(常用)。首尾分别一个指针。从前往后看,每遇到奇数,就将首指针向后移。(因为题目奇数就应该在前面)从后往前看,遇到偶数,就将指针往前移。(题目要求偶数在后面)否则,交换两个指针处的值。注意这里循环条件是两个指针没有...
2018-04-20 22:33:45
1126
原创 算法训练(二)数组反转
题目一:把带有空格的一句话例如:I am a boy 变成 boy a am I 单词顺序全部反转,但是单词内部的字母顺序以及空格相对位置不能变。思路:一次就转换成功看起来有些困难,于是这里分两步进行。I am a boy --> yob a ma I -->boy a am I首先将数组全部反转,但发现这时候单词中的字母顺序也改变了,因此还需要进行一次单词内部的反转。从这里可以看出,...
2018-04-20 22:00:51
415
原创 算法训练(一)青蛙跳
假设青蛙一次只能跳1级或者2级,一共n级台阶,请问青蛙有多少种跳法?思路:1级:1种2级:2种3级:第一步跳1级,或者第一步跳2级 f(2)+f(1)4级:第一步跳1级,或者第一步跳2级 f(3)+f(2)以此类推,n级 f(n-1)+f(n-2)方法一:递归public static int getNum(int n) { int num = 0; if(n<1) { ...
2018-04-11 23:24:49
1210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人