宠物网站 模板,有关性的网站,还有哪些网站可以做H5,邯郸中国建设银行网站1.数字统计 题目来源#xff1a;数字统计——牛客网 测试用例 算法原理 根据题目我们知道#xff0c;首先要输出两个数字确定一个区间#xff0c;寻找这个区间内数字中所有包含2的个数#xff0c;比如12包含一个2,22包含两个2#xff0c;以此类推#xff0c;所以我们的… 1.数字统计 题目来源数字统计——牛客网 测试用例 算法原理 根据题目我们知道首先要输出两个数字确定一个区间寻找这个区间内数字中所有包含2的个数比如12包含一个2,22包含两个2以此类推所以我们的思路就是不断将区间内数字模10后继续除以10寻找该数字中的所有2最后返回2的个数即可整体难度简单建议直接秒杀 实战演练 #include iostream
using namespace std;int main()
{int l,r;cinlr;int sum 0;//注意for循环这里需要r,避免遗漏数据for(int i l;i r;i){//借助临时变量tmp来统计个数//避免直接修改iint tmp i;while(tmp){//使用模运算统计2的个数if(tmp % 10 2){sum;}//逐位统计2tmp / 10;}}coutsumendl;return 0;
} 2.两个数组的交集 题目来源两个数组的交集——牛客网 测试用例 算法原理 本题的核心思路是哈希表不过由于题目数据量较小所以我们使用数组来替代但是作用是相通的 1.首先创建一个布尔类型的哈希表遍历第一个数组后将出现过的数字的位置设置为true反之没出现的设置为false 2.然后使用这个哈希表去第二个数组比较当第二个数组中的元素在相同的位置同样为true则代表是重复元素此时就将其插入到vector容器中 注意当重复字符为nums1{2,2,2,2} nums1{1,2,2}这样的类型时我们只用返回{2}即可所以接下来需要进行去重操作即在遍历第二个数组时出现重复元素在插入后需要将该元素所在的哈希表位置置为false避免重复 实战演练 class Solution
{
private://数据小于1000,所以直接开辟1001大小的数组即可bool hash[1001] {0};
public:vectorint intersection(vectorint nums1, vectorint nums2) {vectorint v;//遍历第一个数组修改哈希表for(auto e : nums1){hash[e] true;}//遍历第二个数组寻找重复元素for(auto ch : nums2){if(hash[ch] true){//查找到重复元素后插入v.push_back(ch);//去重hash[ch] false;}}return v;}
}; 3.点击消除 题目来源点击消除——牛客网 测试用例 算法原理 本题的知识点主要是考验栈的运用如果之前做过括号内道题的话就很容易做出本题 这里我们使用一个string类来模拟栈因为都是对尾部进行操作所以减少一定消耗 1.首先输入一个字符串后这时对另一个字符串进行尾插 2.当这时要插入的元素与模拟栈的字符串尾部元素相同就要进行模拟出栈操作即将模拟栈尾删即可最后返回模拟栈这时的模拟栈就是剩下的元素 实战演练 #include iostream
#includestring
using namespace std;int main()
{string s;string st;cins;for(int i 0;i s.size();i){if(s[i] ! st.back()){//与栈顶元素不相同就入栈st.push_back(s[i]);}else {//与栈顶元素相同就出栈st.pop_back();}}if(st.empty()){cout0endl;}else {coutstendl;}return 0;
}