题目:
在给定头结点的单链表中插入以及删除指定节点
这个题目我们遇到这个问题的时候可能会想这个该怎么解,我们知道如果在一个已知的节点之后添加和删除一个节点的话很容易的,那么如何在给定的节点之前插入一个节点以及删除指定节点?因为如果想删除和插入一个节点的话,肯定是需要获取前面的一个...
尼古拉斯.赵四
9年前 (2016-05-12) 6073℃ 0评论
4喜欢
题目:
一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。
首先来看一下如何判断两个链表是否存在相交的节点:
思路:
1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。
2、当然采用暴力的方法也是...
尼古拉斯.赵四
9年前 (2016-05-12) 5707℃ 0评论
3喜欢
题目:
给定一个单链表,只给出头指针head:
1、如何判断是否存在环?
2、如何知道环的长度?
3、如何找出环的连接点在哪里?
4、带环链表的长度是多少?
解法:
1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,...
尼古拉斯.赵四
9年前 (2016-05-12) 5900℃ 0评论
2喜欢
摘要:
前几天,看到一篇前辈的博文“程序员必知的8大排序”,不禁的手痒起来,重新翻开严蔚敏老师的《数据结构》复习了一遍,然后一一的用java去实现,其中有不足之处,还望各位道友指正出来。
先来看看8种排序之间的关系:
第一:直接插入排序
1. 基本思想:在要排...
尼古拉斯.赵四
9年前 (2016-05-12) 6002℃ 0评论
3喜欢
题目:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
因此输出为...
尼古拉斯.赵四
9年前 (2016-05-12) 5384℃ 0评论
2喜欢
1、前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序
2、原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回...
尼古拉斯.赵四
9年前 (2016-05-12) 6411℃ 0评论
2喜欢
一个简单的24点程序
下面本文将通过两个题目实例,分别给出用递归方法和循环方法的解决方案以及解题思路,便于读者更好地掌握两种方法。首先是一个简单的计算24点的问题(为了简化问题,我们假设只使用求和计算方法):
从1-9中任选四个数字(数字可以有重复),使四个数字的和...
尼古拉斯.赵四
9年前 (2016-05-12) 6773℃ 0评论
3喜欢
下面来看一下很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代...
尼古拉斯.赵四
9年前 (2016-05-12) 6199℃ 0评论
3喜欢