
牛客网_华为机试
牛客网华为机试
GalaxySummer
这个作者很懒,什么都没留下…
展开
-
时针,分针重合时刻 c++
输入现在的时刻,计算出time和time+1之间,时针和分针重合的时刻,要求。2.输出 介于0:00~23:59的时间。假设当前是a时b分,则。1.输入 0~23之间的整数,例如2。原创 2023-03-27 18:10:26 · 885 阅读 · 1 评论 -
HJ3 明明的随机数(c++)
题目链接:明明的随机数_牛客题霸_牛客网注意点:1.选取set较为合适 :C++ ——一文读懂:STL库set_华山令狐冲、的博客-优快云博客_c set集合2.插入时候set的有点多了,不用if去判断,直接st.insert就可以#include <iostream>#include <set>using namespace std;int main(){ int n; while (cin >> n){ set&原创 2022-04-15 21:59:08 · 822 阅读 · 0 评论 -
HJ94 记票统计(c++)
题目链接:记票统计_牛客题霸_牛客网注意点:1.用的暴力求解,坑也不少,在遍历循环的时候要注意边界条件2.用pair类型的vector去存候选人的名字,票数初始化为03.时间复杂度时 O(mn),空间复杂度O(1);因为票数为常量不超过100#include<iostream>#include<vector>using namespace std;int main(){ int n; int tol = 0; string p原创 2022-04-14 18:02:36 · 259 阅读 · 0 评论 -
HJ108 求最小公倍数(c++)
题目链接:求最小公倍数_牛客题霸_牛客网注意点:1.最小公倍数一定是较大数的倍数2.所以用暴力法去做的话,可以从最大的数开始,找到第一个可以整除的数据就是最小公倍数#include <iostream>using namespace std;int main(){ int m , n; while (cin >> m >> n){ for(int i = max(m,n); ; ++i){原创 2022-04-13 21:47:56 · 566 阅读 · 0 评论 -
HJ106 字符逆序(c++)
题目链接:字符逆序_牛客题霸_牛客网注意点:reverse的头文件是algorithm#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ string str, res; while (getline(cin ,str)){ reverse(str.begin(), str.end());原创 2022-04-13 21:21:54 · 527 阅读 · 0 评论 -
HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序(c++)
题目链接:输入整型数组和排序标识,对其元素按照升序或降序进行排序_牛客题霸_牛客网注意点:某个靓仔的vector排序讲的好:C++ vector容器的排序 (从小到大,从大到小)_Rosita.的博客-优快云博客_vector容器排序#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int n; whi原创 2022-04-13 21:11:26 · 413 阅读 · 0 评论 -
HJ102 字符统计(c++)
题目链接:字符统计_牛客题霸_牛客网注意点:1.最适合选取的是map或者unordered_map2.依据本题的意思,sort排序无法对相同字符的数据进行排序#include <iostream>#include <vector>#include <map>#include <algorithm>using namespace std;bool cmp(pair<char, int> a, pair<char原创 2022-04-13 14:21:16 · 316 阅读 · 0 评论 -
HJ100 等差数列(c++)
题目链接:等差数列_牛客题霸_牛客网#include <iostream>using namespace std;int main(){ int n; while (cin >> n){ //做差的第一个元素 int tmp = 2; int sum = 0; for(int i = 0; i < n; i++){ sum += tmp;原创 2022-04-12 22:47:05 · 416 阅读 · 0 评论 -
HJ99 自守数(c++)
题目链接:自守数_牛客题霸_牛客网注意点:参考了评论区大佬的方法,简洁易懂1.首先0必定是自守数,算作初始为1。我们可以遍历1到n验证每个数i是否是自守数。2.如果它是自守数,那么i^2对i这么多位零的整十整百或者整千整万数取余就会得到i本身3.我们可以在遍历的时候初始取模为10,每当i等于模将其扩大十倍即可。#include <iostream>using namespace std;int main(){ int n ; int tmp =原创 2022-04-12 22:29:29 · 806 阅读 · 0 评论 -
HJ97 记负均正(c++)
题目链接:记负均正_牛客题霸_牛客网注意点:注意1.for循环 ,i是从1开始2.小数点后1位的保存#include <iostream>#include <iomanip>using namespace std;int main(){ int n; while (cin >> n){ int sum = 0; //大于0的个数 int cnt = 0; //原创 2022-04-14 17:59:14 · 215 阅读 · 0 评论 -
HJ96 表示数字(c++)
题目链接:表示数字_牛客题霸_牛客网注意点:1.考虑用栈来处理,如果是数字就弹出,如果连续的数字需要判断2.方法二参考了其他人的方法,正则表达式C++正则表达式(匹配、搜索、替换)_神奇的小强的博客-优快云博客_c++正则匹配#include <iostream>using namespace std;int main(){ string str; string res; while(getline(cin, str)){ int i =原创 2022-04-10 22:15:16 · 444 阅读 · 0 评论 -
HJ91 走方格的方案数(c++)
注意点:经典动态规划问题#include<iostream>#include<vector>using namespace std;int main(){ int n, m; while (cin >> n >> m){ //表示第i和j列为止的方案数 //如果这里不好理解,可以改完 /* typedef longlong size_dp;原创 2022-04-08 15:24:56 · 1211 阅读 · 0 评论 -
HJ87 密码强度等级(c++)
题目链接:密码强度等级_牛客题霸_牛客网注意点:这道题的坑比较多1.大小写字符都包含的情况:lowletter && upletter,只要字母存在lowletter || upletter2.判断小写:islower,判断大写isupper(); 判断数字isdigit();3.奖励机制问题,注意题干要求只能选择一种以大优先,所以if的判断顺序只能从大到小#include<iostream>#include<string>using原创 2022-04-08 15:26:50 · 1113 阅读 · 0 评论 -
HJ85 最长回文子串(c++)
题目链接:最长回文子串_牛客题霸_牛客网注意点:1.采用中心拓展法2.需要注意的是中心的数据可能是一个字符也可能是两个字符,所以需要比较这两种情况下最大的回文串#include<iostream>#include<string>using namespace std;//判断最长的回文数int longestPalindrome(string &s, int left, int right){ while(left >=0 &am原创 2022-04-07 16:14:12 · 736 阅读 · 0 评论 -
HJ84 统计大写字母个数(c++)
题目链接:统计大写字母个数_牛客题霸_牛客网#include<iostream>#include<cstring>#include<cctype>using namespace std;int main(){ string str; int cnt = 0; while (getline(cin,str)){ for(int i = 0; i < str.size(); ++i){ if原创 2022-04-07 13:02:41 · 518 阅读 · 0 评论 -
HJ83 二维数组操作(c++)
题目链接:二维数组操作_牛客题霸_牛客网注意点:没理解题意#include<iostream>using namespace std;int main(){ int m,n; while(cin >>m>>n){ if(m > 9 || n > 9) cout <<-1<<endl; else cout <<0 << endl; in原创 2022-04-07 12:43:19 · 479 阅读 · 0 评论 -
HJ81 字符串字符匹配(c++)
题目链接:字符串字符匹配_牛客题霸_牛客网注意点:1.set本身就是去重,且自动升序排序2.unordered_set没有顺序,但去重3.boolalpha:C++学习笔记之---boolalpha_杨鑫newlfe的博客-优快云博客#include<iostream>#include <string>#include<unordered_set>using namespace std; int main(){ strin.原创 2022-04-06 17:55:21 · 346 阅读 · 0 评论 -
HJ80 整型数组合并(c++)
题目链接:整型数组合并_牛客题霸_牛客网注意点:set容器的特性:1.采用inset()方法把元素插入到集合中,插入规则在默认的比较规则下,是按元素值从小到大插入2、set集合中没有重复的元素#include<iostream>#include<set>using namespace std;int main(){ //m第一个数组长度,n第二个数组长度 int m,n; set<int> set; //输原创 2022-04-06 17:20:16 · 526 阅读 · 0 评论 -
HJ76 尼科彻斯定理(c++)
题目链接:尼科彻斯定理_牛客题霸_牛客网注意点:数学规律,每一个奇数的第一个数据都等于m * m - (m - 1)#include<iostream>using namespace std;int main(){ int m; while(cin >> m){ int first = m * m - (m - 1); cout << first; //输出第一个节点后的每个奇数 .原创 2022-04-06 16:47:24 · 294 阅读 · 0 评论 -
HJ73 计算日期到天数转换(c++)
题目链接:计算日期到天数转换_牛客题霸_牛客网注意点:闰年: 能被4整除,不能被100整除。 能被4整除,也能被400整除。#include <iostream>using namespace std;int main(){ int year,month,day; cin >>year>>month>>day; int data[13] ={0,31,28,31,30,31,30,31,31,30,31,30,3原创 2022-04-06 16:25:48 · 398 阅读 · 0 评论 -
HJ72 百钱买百鸡问题(c++)
题目链接:百钱买百鸡问题_牛客题霸_牛客网注意点:暴力求解#include <iostream>using namespace std;int main(){ for(int i = 0; i <= 25; ++i){ for(int j = 0; j <= 33; ++j){ for(int k = 0; k <= 100; ++k){ if (5*i + 3*原创 2022-04-05 20:36:53 · 789 阅读 · 0 评论 -
HJ61 放苹果(c++)
题目链接:放苹果_牛客题霸_牛客网注意点:苹果的分法总的来说只有两种情况1.苹果数>盘子数:1.要不然所有盘子都满,要不然至少有n-1个空盘2.苹果数<盘子数:分法只能在m个盘子中进行,空盘最少是n-m个3.在苹果数小于盘子数之前,多于出来的这部分考虑采用分治,递归的思想进行,那么递归的出口就是盘子数=苹果数=1,或苹果数=0,都只有一种分法。#include<iostream>using namespace std;int recursion(i原创 2022-04-04 17:10:10 · 644 阅读 · 0 评论 -
HJ60 查找组成一个偶数最接近的两个素数(c++)
题目链接:查找组成一个偶数最接近的两个素数_牛客题霸_牛客网注意点:1.判断素数只需要检查到√n,因为大于√n的因子势必要与一个小于√n的因子相乘,而小于等于√n的因子检查完之后,就不会有大于√n的因子2.两个加数越靠近差值就越小,也就是越靠近n/2的两个加数差值越小。因此可以从n/2开始,找到第一对都是素数的加数,直接输出即可,因为一定存在,因此不用遍历完整个数组。#include<iostream>#include<cmath>using names原创 2022-04-04 16:55:15 · 679 阅读 · 0 评论 -
HJ56 完全数计算(c++)
题目链接:完全数计算_牛客题霸_牛客网注意点思路:枚举法,可以先求出所有饿约数,然后再判断是否真因数#include <iostream>using namespace std;int main(){ int n; while (cin >> n){ int cnt = 0; //枚举2开始到n的所有数 for(int i = 2; i <= n; ++i){原创 2022-04-04 00:20:36 · 475 阅读 · 0 评论 -
HJ54 表达式求值(c++)
题目链接:表达式求值_牛客题霸_牛客网注意点:(中缀表达式直接求值)1.双栈计算,数字栈si,符号栈sc1.遇到反阔号')'分两种情况:一.遇到反括号时应该计算出里面的值,还要记得弹出两个括号,二.反阔号后面可能还有一个)或者运算符号。2.数字和符号交替出现,这个交替出现可以用一个布尔变量来表示。#include <iostream>#include <algorithm>#include <stack>#include <strin原创 2022-04-03 18:05:33 · 1035 阅读 · 0 评论 -
HJ53 杨辉三角的变形(c++)
题目链接:杨辉三角的变形_牛客题霸_牛客网注意点如图:1.第一,二行没有偶数2.偶数行的偶数位置出现在不是第三就是第四位,关键看是否能被4整除#include <iostream>using namespace std;int main(){ int n; cin >> n; //第一行和第二行没有偶数 if ( n == 1 || n == 2 ) cout << -1;原创 2022-04-02 16:17:28 · 592 阅读 · 0 评论 -
HJ51 输出单向链表中倒数第k个结点(c++)
题目链接:输出单向链表中倒数第k个结点_牛客题霸_牛客网注意点:1.快慢指针,都从链表头出发,快指针先行k步,达不到k步说明链表过短,返回空链表。2.快慢指针同步向后,快指针先到底,慢指针指向倒数第k个,因为它们之间差了k个元素。#include <iostream>using namespace std;//链表节点struct ListNode{ int val; ListNode* next; //初始化 ListNode(int原创 2022-04-02 14:35:17 · 1082 阅读 · 0 评论 -
HJ46 截取字符串(c++)
题目链接:截取字符串_牛客题霸_牛客网注意点:1.substr的头文件是string2.构造:s.substr(pos, n),从pos开始到n个字符的拷贝,pos的默认值是0,n的默认值是s.size() - pos,不加参数会默认拷贝整个s)#include<iostream>#include<string>using namespace std;int main(){ string str; int n; cin >原创 2022-04-01 16:42:34 · 561 阅读 · 0 评论 -
HJ40 统计字符(c++)
题目链接:统计字符_牛客题霸_牛客网注意点:统计英文字母注意大小写的都要统计#include <iostream>#include <string>using namespace std;int main(){ string s; int cnt_word = 0,cnt_blank = 0, cnt_number = 0, cnt_other = 0; while ( getline(cin,s)){ for (int i = 0; i原创 2022-04-01 16:21:16 · 411 阅读 · 0 评论 -
HJ37 统计每个月兔子的总数(c++)
题目链接:统计每个月兔子的总数_牛客题霸_牛客网注意点:1.兔子的规律:,即,除了第一和第二个月,之后每个月的兔子数,是前两个月兔子的和,即f(n) = f(n-1)+f(n-2),是斐波那契数列。2.动态规划思路:除了第一二月外(这两个月初始化为1),每个月的值等于它前两个月的值相加,转移方程就是:dp[i]=dp[i−1]+dp[i−2]3.复杂度分析:时间复杂度:O(n),遍历dp数组一次 空间复杂度:O(n),动态规划辅助数组dp的长度为n#include原创 2022-04-01 15:50:42 · 929 阅读 · 0 评论 -
HJ35 蛇形矩阵(c++)
题目链接:蛇形矩阵_牛客题霸_牛客网这道题做的时候做错了,参考了评论区的方法#include<iostream>using namespace std;int main(){ //输入行数 int n; while(cin >> n){ int num = 1; //总共输出n行 for(int i = 1; i <= n; ++i){ //输出每一行的第一个数字 c.原创 2022-03-31 22:37:17 · 470 阅读 · 0 评论 -
HJ34 图片整理(c++)
题目链接:图片整理_牛客题霸_牛客网注意点:1.sort函数会直接比较字符的ASCⅡ码顺序,然后用快速排序法进行排序。2.sort的头文件:algorithm#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string str; while(getline(cin,str)) { sort(str.be原创 2022-03-24 17:41:22 · 761 阅读 · 0 评论 -
HJ31 单词倒排(c++)
题目链接:单词倒排_牛客题霸_牛客网注意点:1.一开始用栈,不太好实现,参考了评论区的写法,需要注意的是stringstream的引入,以引号为分割2.最后一个单词不需要空格3.streamstring的头文件sstream#include<iostream>#include<string>#include<sstream>#include<vector> using namespace std;int main(原创 2022-03-24 17:20:30 · 1418 阅读 · 0 评论 -
HJ23 删除字符串中出现次数最少的字符(c++)
题目链接:删除字符串中出现次数最少的字符_牛客题霸_牛客网参考了评论区大佬的解法#include<iostream>#include<string>#include<vector>#include<cmath> using namespace std;const int INF = 0x3f3f3f3f;int main(){ string str; //26大小数组和每个字母的出现次数 vector<ch原创 2022-03-22 16:10:29 · 914 阅读 · 0 评论 -
HJ22 汽水瓶(c++)
题目链接:汽水瓶_牛客题霸_牛客网注意点:当矿泉水瓶剩余2瓶的时候,就可以借一瓶了#include<iostream>using namespace std;int main(){ //剩余矿泉水瓶res,可以兑换的量为num int num,res ; while (cin >> num && num != 0) { //每次必须设0,不然会累计 res = 0; while (num >= 3)原创 2022-03-22 12:27:14 · 1180 阅读 · 0 评论 -
HJ21 简单密码(c++)
题目链接:简单密码_牛客题霸_牛客网注意点:1.switch语句2.考虑哈希表的实现,推荐好:c++ map与unordered_map区别及使用_别说话写代码的博客-优快云博客_unordered_map3.小写字母转数字,推荐采用unordered_map来存放映射关系;大写字母转小写,可以直接加324.isalpha()函数方法一:#include <iostream>using namespace std;int main(){原创 2022-03-22 00:01:19 · 850 阅读 · 0 评论 -
HJ15 求int型正整数在内存中存储时1的个数(c++)
题目链接:求int型正整数在内存中存储时1的个数_牛客题霸_牛客网注意点:bitset的用法:bitset用法小结 - 自为风月马前卒 - 博客园#include <iostream>#include <bitset>using namespace std;int main(){ int num; cin >> num; bitset<32> b(num); cout << b.count() <<e原创 2022-03-21 22:27:09 · 180 阅读 · 0 评论 -
HJ14 字符串排序(c++)
题目链接:字符串排序_牛客题霸_牛客网注意点:1.vector:C++ vector 容器浅析 | 菜鸟教程2.sort()排序:C++ sort()排序详解_AC-fun的博客-优快云博客_c++ sort排序#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ string str; int num;原创 2022-03-21 19:06:35 · 353 阅读 · 0 评论 -
HJ13 句子逆序(c++)
题目链接:句子逆序_牛客题霸_牛客网注意点:1.首先考虑STL中的stack,实现栈操作,指路:C++ stack(STL stack)用法详解2.方法二是巧用流输入方法一(栈):#include<iostream>#include<string>#include<stack>using namespace std;int main(){ string str; stack<string> stk;原创 2022-03-21 18:28:24 · 650 阅读 · 2 评论 -
HJ12 字符串反转(c++)
题目链接:字符串反转_牛客题霸_牛客网#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ string str; getline(cin,str); reverse(str.begin(),str.end()); cout << str <<endl; return 0;}...原创 2022-03-20 12:53:30 · 199 阅读 · 0 评论