数据结构与算法分析
weixin_42048754
这个作者很懒,什么都没留下…
展开
-
剑指offer刷题-字符流中第一个不重复的字符(LinkedHashMap)
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 用例: “google” 对应输出应该为: “ggg#ll” 分析: 在前三个字符时,第一个不重复的字符始终是...原创 2020-05-07 19:57:00 · 199 阅读 · 1 评论 -
剑指offer刷题-用两个栈实现队列及栈、队列的知识补充
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 创建两个栈stack1和stack2,使用两个先进后出的栈实现一个先进先出的队列 1、先考虑Push操作: 向队列插入元素,因为队列和栈一样都是在表头添加,所以可以直接添加到stack1的表头。 2、再考虑Pop操作: 因为对于队列的删除操作,先进先出,是删除表尾,即先添加进来的元素。如果直接在s...原创 2020-05-04 11:29:11 · 202 阅读 · 0 评论 -
数据结构与算法分析——排序算法总结
排序算法总结 常见的十大排序算法: 八大排序算法分类 一、直接插入排序Insertion Sort 插入排序的设计初衷是往有序的数组中快速插入一个新的元素。它的算法思想是:把要排序的数组分为了两个部分, 一部分是数组的全部元素(除去待插入的元素), 另一部分是待插入的元素; 先将第一部分排序完成, 然后再插入这个元素. 其中第一部分的排序也是通过再次拆分为两部分来进行的. 插入排序由于操作不尽相...原创 2020-05-02 20:46:50 · 344 阅读 · 0 评论 -
数据结构初体验-迭代与递归、动态规划
数组求和-迭代 int Sum(int A[],int n){ int sum=0; //O(1) for(int i = 0;i < n; i++){ //O(n) sum += A[i]; //O(1) } return sum; //O(1) } 时间复杂度:O(n) 空间复杂度:计算除输入外,循环中需要的空间,在此包括累加器sum和内部循环的控制变量i,所...原创 2020-04-09 20:39:01 · 170 阅读 · 0 评论