随笔分类 - 算法
摘要:需求: 给定一个单项链表的头结点,从尾到头打印链表中的节点的值。 分析: 思路一 由于从链表的结尾开始逆序打印,也就是说最后的节点先打印,联想到后进先出,可以使用栈来依次把链表节点保存起来,然后从新栈顶开始获取节点打印并且把节点出栈,直到栈为空,打印结束。见示例代码reversePrintBySta
阅读全文
摘要:简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复
阅读全文
摘要:需求:有两个非递减排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2,请实现一个函数,把A2中的所有数字插入A1中,并且所有的数字都是排序的。 例如数组A1{ 1,5,7,8,9,17,20 }和数组A2{ 0,2,4,6,7,17,18,23,25 },合并后的结果应为{ 0,1,2
阅读全文
摘要:需求: 请实现一个函数,把字符串中的每个空格替换成"%20",例如,输入"We are happy!",则输出"We%20are%20happy!"。 分析: 思路一 直接从头开始替换。 1.从W开始遍历,找到第一空格 We后面的空格; 2.找到字符串结尾的地方,把We空格之后所有的字符串都往后移动
阅读全文
摘要:需求: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都是按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如果含有该整数则把整数所在的行和列输出。 例如一个二维数组: 1 2 8 9 2 4 9 12 4 7 10 13 6 8
阅读全文
摘要:需求 不修改数组找出重复的数字。在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,单不能修改输入的数组。例如,如果输入长度为8的数组{2,3,5,4,6,2,6,7},那么对应的输出是重复的数字2或者6。(不要求找出所有重复数字
阅读全文
摘要:需求 找出数组中重复的数字。 在一个长度为n的数组里的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。(不要求
阅读全文
摘要:简介 二分查找又称折半查找,用于在顺序存储结构(逻辑上相连的节点在物理存储上也相连,如数组)的并且关键字有序的线性表中查找关键字,是一种效率比较高的查找算法。 基本逻辑 假如需要查找的序列是一个非递减序列,首先把序列从中间分成两半。 1.如果查找的关键字跟序列中间关键字相同,说明查找到了,停止查找并
阅读全文

浙公网安备 33010602011771号