剑指offer
剑指offer
豆沙睡不醒
永远不要停下脚步
展开
-
【剑指offer】剑指 Offer 03. 数组中重复的数字 (C++ 哈希 遍历)
题目链接题意:给出一个数组,求出任意一个重复的数字。思路:用mapmapmap维护每个数字出现的次数。遍历数组,每次让该数字xxx出现的次数+1+1+1如果mp[x]>1mp[x]>1mp[x]>1,说明该数字在以前就出现过,为重复的数字,答案为该数字。代码:class Solution {public: int findRepeatNumber(vector<int>& nums) { map<int,int>mp原创 2022-01-17 15:54:53 · 511 阅读 · 2 评论 -
【剑指offer】剑指 Offer 10- I. 斐波那契数列 (C++ 模拟 取余)
题目链接题意:给出nnn,求出斐波那契数列第n项,值取余1e9+71e9+71e9+7思路:斐波那契数列递推公式为:f[0]=0,f[1]=1f[0]=0,f[1]=1f[0]=0,f[1]=1f[n]=f[n−1]+f[n−2](n>2)f[n]=f[n-1]+f[n-2] (n>2)f[n]=f[n−1]+f[n−2](n>2)特判n<=1n<=1n<=1的情况对于其他情况,for循环求就可以。假设ccc就是答案,aaa是前两项,bbb是前一项。每原创 2022-01-17 15:42:06 · 495 阅读 · 0 评论 -
【剑指offer】剑指 Offer 09. 用两个栈实现队列(C++ 模拟 栈 队列)
题目链接题意:用两个栈模拟队列,要求实现插入和删除操作。思路:栈的特点:先进后出队列的特点:先进先出所以用一个栈stk1维护插入操作,一个栈stk2维护删除操作。插入的时候,插入到栈stk1里。删除的时候,弹出栈stk2的元素。如果stk2为空的话,将stk1里的所有元素弹入stk2里,这样stk2的元素顺序就是队列删除元素的顺序,符合队列先进先出的特性。还有几个小细节:构造函数里要将两个栈清空;删除的时候,如果stk1也为空的话,则返回-1代码:class CQueue {pu原创 2022-01-17 15:26:27 · 537 阅读 · 0 评论