数据结构与算法
文章平均质量分 79
ChrisYoung1314
这个作者很懒,什么都没留下…
展开
-
解题报告——第一次只出现一次的字符
题目:在一个字符串(1。 思路:简单的哈希问题,char占一个字节,8位,最多表示256种字符。时间复杂度O(n),空间复杂度O(1),因为hash数组大小为常数256。只需要遍历一次字符串,然后遍历一次hash数组即可。 我的代码如下: class Solution {public: int FirstNotRepeatingChar(string str原创 2015-08-08 10:07:51 · 778 阅读 · 0 评论 -
数据结构——全面学习哈希
相信学计算机的童鞋对于“哈希”这个词会很熟悉,但是能明明白白的说清楚,并且用程序来描述的人还是比较少的。这里,我们就全面学习这个重要的数据结构,以及它的思想和应用。 首先,我们来学习一下几个基本概念。 哈希(hash) 是一种数据编码方式。将大尺寸的数据(如一句话,一张图片,一段音乐、一个视频等)浓缩到一个数字中,从而方便地实现数据匹配和查找的功能。 哈希表原创 2015-08-18 11:42:09 · 2040 阅读 · 0 评论 -
教你彻底学会动态规划——进阶篇
在我的上一篇文章中已经详细讲解了动态规划的原理和如何使用动态规划解题。本篇文章,我将继续通过例子来让大家更加熟练地使用动态规划算法。 话不多说,来看如下例题,也是在动态规划里面遇到过的最频繁的一个题,本题依然来自于北大POJ: 最长公共子序列(POJ1458) 给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到, 而且每个原创 2015-08-11 20:29:01 · 33833 阅读 · 26 评论 -
解题报告——把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。 思路:首先,看到题目就要想到先把整数转换为字符串,因为结果肯定是一个大数。然后分析这道题目的本质,其实就是要对转换后的字符串进行排序,然后顺序输出即可,至于排序的方式需要自己定义。举个例子,题目中的字符串“3原创 2015-08-08 08:48:18 · 977 阅读 · 0 评论 -
教你彻底学会动态规划——入门篇
动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就...原创 2015-08-11 13:26:41 · 389517 阅读 · 289 评论