当前位置: 首页 > news >正文

笔试编程-百战成神——Day01

1.数字统计

题目来源:数字统计——牛客网

测试用例 

算法原理 

根据题目我们知道,首先要输出两个数字确定一个区间,寻找这个区间内数字中所有包含2的个数,比如12包含一个2,22包含两个2,以此类推,所以我们的思路就是不断将区间内数字模10后继续除以10寻找该数字中的所有2,最后返回2的个数即可,整体难度简单建议直接秒杀

实战演练  

#include <iostream>
using namespace std;int main()
{int l,r;cin>>l>>r;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;}}cout<<sum<<endl;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:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {vector<int> 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>
#include<string>
using namespace std;int main()
{string s;string st;cin>>s;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()){cout<<0<<endl;}else {cout<<st<<endl;}return 0;
}
http://www.lryc.cn/news/446509.html

相关文章:

  • Qt+toml文件读写
  • 浅谈C++之指针
  • 在虚幻引擎中实时显示帧率
  • Apache Iceberg构建高性能数据湖
  • 【图像压缩与重构】基于标准+改进BP神经网络
  • 函数式编程(以Python编程语言为例)介绍
  • 银河麒麟操作系统中查看动态库函数的方法
  • 开放麒麟openkylin
  • 用Python与OpenCV的实践:实时面部对称性分析
  • 第三十三章 使用派生密钥令牌进行加密和签名 - 使用 DerivedKeyToken _进行加密(一)
  • Structure-Aware Transformer for Graph Representation Learning
  • 滚动页面,el-table表头始终置顶
  • Mac使用gradle编译springboot-2.7.x源码
  • MySQL --索引(下)
  • 选择寄宿学校,给自闭症孩子一个温暖的第二家
  • 大模型训练:K8s 环境中数千节点存储最佳实践
  • 【Linux学习】1-2 新建虚拟机ubuntu环境
  • ftdi_sio驱动学习笔记 3 - 端口操作
  • [leetcode]39_组合总和_给定数组且数组可重复
  • 【笔记】第三节 组织与性能
  • 数据库——sql语言学习 查找语句
  • 【计算机网络 - 基础问题】每日 3 题(二十三)
  • JPA + Thymeleaf 增删改查
  • Android常用C++特性之std::this_thread
  • 成语700词(31~45组)
  • vue3组件通信(组合式API)
  • 从预测性维护到智能物流:ARM边缘计算控制器的工业实践
  • 2024年汉字小达人区级自由报名备考冲刺:最新问题和官模题练一练
  • Linux相关概念和重要知识点(8)(操作系统、进程的概念)
  • 测序技术--组蛋白甲基化修饰、DNA亲和纯化测序,教授(优青)团队指导:从实验设计、结果分析到SCI论文辅助