
算法学习
逆光Lucy
这个作者很懒,什么都没留下…
展开
-
3.数组中的重复数字
数组中的重复数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路先把输入的数组排序,再从头到尾扫描数组,从中找出重复的数字。排序数组时间复杂度为O(nlogn)利用哈希...原创 2018-11-07 15:48:05 · 183 阅读 · 0 评论 -
4.二维数组中的查找
二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路二维数组array[][] ,行数rows,列数columns,target从右上角的数字num=array[0][columns-1]开始查找: 若num<target,向下移,继续查找; 若n...原创 2018-11-07 16:17:24 · 173 阅读 · 0 评论 -
5.替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路扫描一遍字符串,得到空格的总数count因为空格要换成%20,所以可以计算出替换后的字符串的总长度,新字符串总长度=原字符串+2*count。然后从字符串的后面开始复制和替换。这样做的话时间复杂度为O(n),空间复杂度为O(1)...原创 2018-11-08 14:07:16 · 268 阅读 · 0 评论 -
字符串匹配 ——KMP算法
之前一直没太搞懂KMP算法,这篇博文写得很易懂,记录一下。地址:https://news.cnblogs.com/n/176771/转载 2018-11-08 14:10:29 · 168 阅读 · 0 评论