剑指
文章平均质量分 62
Star,
这个作者很懒,什么都没留下…
展开
-
剑指简单题——两个栈实现队列
题目描述: 用两个栈实现一个队列,队列的声明:请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 解题思路: 栈的数据结构是“先进后出”,我把它想象成一个一端被封闭了的管道,元素的进出都只能在开口的一端; 队列的数据结构是“先进先出”,这种结构生活中很常见,就是我们平时排队买东西,一端只能出元素,而另一端只能进元素; 题目其实已经说的很清楚是用两个栈实现队列,首先是入队原创 2021-07-29 11:05:32 · 51 阅读 · 0 评论 -
剑指 面试题50
剑指 面试题50:字符串中第一个只出现一次的字符。在字符串中找出第一个只出现一次的字符,如:输入“abaccdeff”,泽输出“b” 解题思路:用数组来实现哈希表;创建一个int[]数组,让int[]下标作为key(表示这个字符的ASCII码), 下标所指向的元素作为value(表示这个字符出现的次数);由于char是一个长度为8的字符类型,那么就有2的8次方也就是256种可能, 所以创建的int[]长度为256。 然后第一次遍历字符串将每个字符和它的出现次数填入map表;第二次遍历map表找出第一个只出现原创 2020-10-20 21:50:49 · 67 阅读 · 0 评论 -
剑指 面试题3:数组中重复的数字
剑指 面试题3:数组中重复的数字 题目一:找出数组中重复的数字。 在一个长度为 n 的数组里所有数字都在0–(n-1)的范围内。数组中某些数字是重复的,但不知道有几个数字重复了, 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如:如果输入长度为7的数组{2,3,1,0,2,5,3} 那么对于的输出是重复的数字2,或者3。 解题思路: 1. 对输入的数组进行排序,再扫描排序后的数组就能很容易找出重复的数字,排序需要的时间复杂度为O(n*logn) 2. 利用哈希表解决,用一个长度为n辅助数原创 2020-10-20 21:42:01 · 80 阅读 · 0 评论