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

【笔试题】迈入offer的新大门

1. 笔试题1
1.1 题目链接:[NOIP2010]数字统计_牛客题霸_牛客网
1.2 题目描述

 补充:

1.3 解法
1.3.1 算法思路

定义变量,L,R,count用于记数。

对规定符合区域范围内的数据进行遍历,对每个数据的每一位进行判断是否为2,若为2则count++,最后打印count即可。

1.3.2 示例代码(C++):
#include <iostream>
using namespace std;int main() {int L, R, count = 0;cin >> L >> R;for (int i = L; i <= R; i++)//遍历总的数据{int n = i;//while (n > 0)//统计2出现的个数{if (n % 10 == 2)count++;n /= 10;}}cout << count << endl;
}

错误代码:

#include <iostream>
using namespace std;int main() {int L,R,count=0;cin>>L>>R;for(int i=L;i<=R;i++){while(i>0){if(i%10==2)count++;i/=10;}}cout<<count<<endl;
}

为啥错?

首先在while循环里,i被一直改变,原始的i已经更新,你在进行i++,显然数据已经约之千里。

1.3.2 示例代码(java):

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in);int l = in.nextInt(), r = in.nextInt();int ret = 0;for(int i = l; i <= r; i++){int tmp = i;while(tmp != 0){if(tmp % 10 == 2) ret++;tmp /= 10;}}System.out.println(ret);}
}
2. 笔试题2
2.1 题目链接:两个数组的交集_牛客题霸_牛客网
2.2 题目描述

补充: 

 2.3 解法
2.3.1 算法思路

定义 哈希数组hash[1010]={false},i,j用于遍历两个数组,创建一个数组nums3用于存储连数组都出现过的元素。

首先使用哈希,此哈希并非哈希,而是用数组模拟。依次遍历元素进行比较,如果两个数组中都出现过,则将哈希中对应出现过的数改为true,最后在遍历哈希数组,将对应数组值为true的尾插到数组nums3中,最后直接返回nums3即可。

2.3.2 示例代码(C++):自己写的,代码较冗余,易理解
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {vector<int> nums3;bool hash[1001]={false};int len1=nums1.size();int len2=nums2.size();int m=0;for(int i=0;i<len1;i++){for(int j=0;j<len2;j++)if(nums1[i]==nums2[j]){hash[nums1[i]]=true;//出现过break;}}for(int i=1;i<=1000;i++){if(hash[i]==true)nums3.push_back(i);}return nums3;}
};

另一版本:

class Solution
{bool hash[1010] = { 0 };
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2){vector<int> ret;for (auto x : nums1){hash[x] = true;}for (auto x : nums2){if (hash[x]){ret.push_back(x);hash[x] = false;}}return ret;}
};

2.3.3 示例代码(java):

import java.util.*;
public class Solution
{public ArrayList<Integer> intersection (ArrayList<Integer> nums1, 
ArrayList<Integer> nums2){boolean[] hash = new boolean[1010];for(int x : nums1){hash[x] = true;}ArrayList<Integer> ret = new ArrayList<>();for(int x : nums2){if(hash[x]){ret.add(x);hash[x] = false;}}return ret;}
}
3. 笔试题3
3.1 题目链接:点击消除_牛客题霸_牛客网
3.2 题目描述

补充: 

3.3 解法 
3.3.1 算法思路

借助数据结构(栈),先进先出特点,循环入栈,入栈前判断栈是否为空,为空直接入栈,否则再取栈顶元素与字符比较,如相等则直接出栈,不相等则继续入栈。最后string元素结束时将剩余元素出栈进行逆置。

3.3.2 示例代码(C++):
#include <iostream>
#include<stack>
#include<string>
#include<algorithm>
using namespace std;int main() {stack<char> st;string s1,s2="";cin>>s1;for(auto& ch:s1){if(st.empty()) st.push(ch);else{if(st.top()==ch){st.pop();}else{st.push(ch);}}}while(!st.empty()){s2.push_back(st.top());st.pop();}reverse(s2.begin(),s2.end());if(s2.empty())cout<<0<<endl;else{cout<<s2<<endl;}
}
#include <iostream>
2 #include <string>
3
4 using namespace std;
5
6 int main()
7 {
8 string s, st;
9 cin >> s;
10
11 for(auto ch : s)
{if(st.size() && st.back() == ch) st.pop_back();else st += ch;}cout << (st.size() == 0 ? "0" : st) << endl;return 0;
}

 3.3.3 示例代码(java):

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in);char[] s = in.next().toCharArray();StringBuilder st = new StringBuilder();for(int i = 0; i < s.length; i++){char ch = s[i];if(st.length() != 0 && ch == st.charAt(st.length() - 1)){// 出栈st.deleteCharAt(st.length() - 1);}else{// 进栈st.append(ch);}}System.out.println(st.length() == 0 ? 0 : st.toString());}
}

你的支持就我创作的动力!!!


http://www.mrgr.cn/news/65087.html

相关文章:

  • TQRFSOC开发板47DR 100G光口UDP回环实验
  • Hugging Face魔塔使用
  • redis:list列表命令和内部编码
  • 基于Multisim数控直流稳压电源电路(含仿真和报告)
  • 无人机场景 - 目标检测数据集 - 夜间车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • YOLOv10改进策略【注意力机制篇】| WACV-2024 D-LKA 可变形的大核注意 针对大尺度、不规则的目标图像
  • 统信UOS设备驱动开发-调试优化
  • 好多好多的排序方法——(C语言)
  • synchronized加锁原理以及锁升级过程
  • 2025上海市公务员考试报名流程详细教程
  • 数据结构之树
  • 简记Vue3(三)—— ref、props、生命周期、hooks
  • 如何基于pdf2image实现pdf批量转换为图片
  • Java毕业设计-基于SpringBoot+Vue的体育用品库存管理系统
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-12
  • 【Android面试八股文】你能说说kotlin怎么取消CPU密集型任务吗?
  • CentOS 7 软件/程序安装示例
  • 每周算法比赛
  • c++模板入门
  • Golang--函数、包、defer、系统函数、内置函数
  • 线性代数:Matrix2x2和Matrix3x3
  • 数据结构-二叉树中的递归
  • DBeaver的sql查询结果突然不见了,怎么办?
  • 练习题 - Scrapy爬虫框架 Cookies 本地终端数据
  • 每一次放纵自己,意味着比以前更弱小(8)
  • 数据结构-链表【chapter1】【c语言版】