- 博客(3)
- 收藏
- 关注
原创 Leetcode每日一题打卡
剑指Offer09.用两个栈实现队列原题根据栈先进后出和队列先进先出的不同特点予以以下实现,使用栈s1记录队列尾部元素,每次插入操作可以直接压入栈s1中;在删除元素时,为了删除头部元素,使用栈s2维护头部元素。当s2不为空时,直接弹出栈顶元素即可。当s2为空时,就将s1中元素一次弹出而后压入s2中,实现顺序的反转,s2栈顶元素就是队列的头部元素。当栈为空时,返回-1。class CQueue { stack<int> s1;//记录队列元素(栈顶为尾部) stack<
2020-06-30 07:59:47 143
原创 Leetcode每日一题打卡
209.长度最小的子数组原题双指针用start和end两个指针指向子数组的开始和结束位置,当子数组的和小于目标和s时右移右指针end,直至子数组和大于等于s,此时,更新最短子数组长度,右移左指针,缩短数组长度,直至end走到数组末尾为止。class Solution {public: int minSubArrayLen(int s, vector<int>& nums) { int start=0, end=0, ans=INT_MAX;//初始化,开
2020-06-28 09:25:42 177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人