【每日一题-7】min栈实现与第一次只出现两次的字符
来源:互联网 发布:ps4淘宝被禁的游戏 编辑:程序博客网 时间:2024/05/29 11:47
实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
#include<iostream>#include<stack>using namespace std;template<class T>class Stack{public:void Push(const T data){s1.push(data);int top = s1.top();if (s2.empty())s2.push(top);else{if (!s1.empty() && s1.top() < s2.top()){s2.push(s1.top());}s1.pop();}}void Pop(){if (!s1.empty()){s1.pop();}}int Min(){return s2.top();}protected:stack<int> s1;stack<int> s2;};
查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
#include<assert.h>char FindFirstCh(char* str, size_t n){assert(str&& n);char arr[256] = { 0 };//记录字符出现的个数int count[256] = { 0 };//记录字符出现的次数for (size_t i = 0; i < n; i++){arr[str[i]]++;count[str[i]] = i;}for (size_t i = 0; i < n; i++){if (count[i] && arr[i] == 2)//如果该字符出现两次,且是第一次出现的return arr[i];}return NULL;//没有出现两个字符的情况}
阅读全文
0 0
- 【每日一题-7】min栈实现与第一次只出现两次的字符
- 【每日一题】查找一个字符串中第一个只出现两次的字符
- 【每日一题】查找一个字符串中第一个只出现两次的字符。要求时间复杂度为O(N),空间复杂度为O(1)
- day07之包含min函数的栈+查找一个字符串中第一个只出现两次的字符
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) /查找一个字符串中第一个只出现两次的字符
- 每日一题(44) - 第一个只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 查出第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 查找第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 常用数据结构
- Scikit-Learn各算法详细参数速查手册(中文)
- 如何完成卷积神经网络有关的毕业设计
- 虚拟化技术
- msm8x16 耳机阻抗检测
- 【每日一题-7】min栈实现与第一次只出现两次的字符
- 【Java学习之路】如何去除数组里面的0
- inotify问题定位
- 词向量转换成句向量的文本相似度计算
- kafka_2.12-0.10.2.1集群搭建安装配置
- HDU-2047(递推)
- Unity 配合Wallpaper Engine工具,实现电脑桌面壁纸游戏
- WEB 测试点
- Nexus3搭建Maven私有库(四)