- 博客(8)
- 收藏
- 关注
原创 两种方式找出数组中只出现一次的数字
题目描述:(剑指offer)一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。例 输入:{1,9,7,1,2,2,3,4,5,4,5,6,7,8,8,9}输出:num1[0] =3num2[0]=6‘思路1:(借用HashSet的没有重复特性) step1、创建
2017-04-15 16:56:46 538
原创 在字符串里找第一个只出现一次的字符
题目描述(来自剑指offer):在一个字符串(1中找到第一个只出现一次的字符,并返回它的位置。如果字符串为空,返回-1思路:(利用java的linkedHasMap,保证了字符串的顺序)第一次遍历:使Map中 key保存字符,value保存字符出现的频数,第二次遍历:找到value为1的那个下标,将其返回例如:输入:str={"gogoup"}输出:4
2017-04-14 11:06:46 1060
原创 归并排序java实现
归并排序 :中文理解就是合并的意思,.也就是号将两个分开的部分,合并成为一个整体,可是,如何实现所谓合并呢?Merging Sort: Merge :其实更好的体现了算法的思想,将部分——>merge——>成为整体,Merge,像和面一样,很充分的结合。原理(先分后和):step1:将一个无序的序列分开为n个有序的长为1的子序列step2:n个中两两配对按顺序合并,
2017-04-11 10:10:36 269
原创 判断数组是否为搜索二叉树的后序遍历
题目:给一个整数型数组,在其中没有重复值的情况下,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出false,否则输出true解法思路(递归):because 二叉树的后序遍历:左孩子—>右孩子—> 父结点step1:如果一个数组arr是搜索二叉树的后序遍历结果,那arr的最后一个元素就是树的根结点rootstep2:去掉最后一个元素a
2017-04-05 11:08:52 616
原创 字符串的空格更换(也可进行任意字符更换)
字符串空格更换函数(将一个字符串中的空格替换成“**”)输入:一个字符串输出:空格替换成“**”的字符串,非空字符串部分维持不变例如:当字符串为We Are Happy.则经过替换之后的字符串为We**Are**Happy给出两种思路:1.直接利用java中的库函数,代码非常简洁String replaceSpace(StringBuffer str) {
2017-04-04 00:55:57 439
原创 二叉树的遍历:前序遍历、中序遍历和后序遍历
如果二叉树不为空,根据二叉树结点的父子结构 有三种遍历方式:前序遍历、中序遍历和后序遍历1.前序遍历(按传统:父为大,上左下右)采用递归:父结点——>左孩子——>右孩子2.中序遍历(很方便:从左到右)采用递归:左孩子——>父结点——>右孩子3.后序遍历(现代化:孩子优先)采用递归:左孩子——>右孩子——>父结点示例:二叉树结果:
2017-04-03 21:47:43 530
原创 二叉树的遍历之层序遍历
二叉树T的遍历是访问树中的每一个结点。在访问结点的时候,可以进行结点运算或者修改结点内容等一些相应处理。根据二叉树的定义,只要二叉树T不为空,则T形式如下:根据二叉树的结构,下面实现二叉树的按层遍历:按照树的层,每一层从左到右依次输出例如下图按层遍历输出结果为{8,8,3,7,6,5,4}
2017-04-02 18:19:48 731
原创 头插法(逆序)和尾插法(顺序)实现单链表的创建与排序
链表是线性表的一种表示形式,和线性表的另一种表达形式——数组不同。在链表中,没有固定长度的设定,表中节点是彼此相连的,表中的每一个节点链接下一个节点(即后继),链表头(Head)指向链表的第一个节点。所以,要想找到某一节点的位置,只需要确定它的上一结点的位置即可。这种性质使得链表的创建与插入变得相当灵活。链表的创建有两种方法:头插法 和 尾插法1.头插法: 在链表的开头插入一个新的节点,也
2017-03-22 18:04:52 31230
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人