| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【大摆子 做 摆烂题】【C++】 -> 正文阅读 |
|
[C++知识库]【大摆子 做 摆烂题】【C++】 |
目录 1. 组队竞赛牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 输入描述: 输入的第一行为一个正整数n(1 ≤ n ≤ 10^5) 第二行包括3*n个整数a_i(1 ≤ a_i ≤ 10^9),表示每个参赛选手的水平值. 输出描述: 输出一个整数表示所有队伍的水平值总和最大值. 1.2 思路这就是一个贪心的策略,想让总和最大那我直接从大到小排好每次取第二个,取n次就好了。 1.3代码实现
2.排序子序列牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 输入描述: 输入的第一行为一个正整数n(1 ≤ n ≤ 10^5) 第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9),表示数组A的每个数字。 输出描述: 输出一个整数表示牛牛可以将A最少划分为多少段排序子序列 2.1?思路?1.v[j] > v[j + 1]就是一个非递减排序的 碰见不满足v[j] >= v[j + 1] count++ ; 2.v[j] <?v[j + 1]就是一个非递增排序的 碰见不满足v[j] <= v[j + 1] count++ ; 3.v[j] ==?v[j + 1] 没有起或者伏往下走 j++; 2.2 代码实现
3.??数组中出现次数超过一半的数字给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 数据范围:n \le 50000n≤50000,数组中元素的值?0 \le val \le 100000≤val≤10000 要求:空间复杂度:O(1)O(1),时间复杂度?O(n)O(n) 输入描述:保证数组输入非空,且保证有解 3.1 思路?1. 拿到这个题首先我想到就是排序然后 加一个计数器count 遍历数组前后俩相等 count++ 出现不相等里面 count 置零 如果 count 大于总元素个数的一半就return,还要加一点边界判断。 2. 之后发现了其实如果大于一半的话肯定那个数字必然在中间,大于总元素个数的一半 。其实直接把中间那个元素 return 都可以,做到这发现其实你一直用的是 sort(); 也就是快排时间复杂度还是有的能不能再降一降。 3. 我们用哈希映射的思想用unordered_map来做,遍历一遍数组把值出现的次数存到map中,然后再遍历一遍找出来最多的。 3.2 代码实现
4. 计算糖果A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: 输入描述: 输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。 输出描述: 输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No 4.1 思路这个就是一个翻译的过程,还有就是对结果的逆向判断一下看看是否有解的问题。 4.2 代码实现
5. 进制转换给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述: 输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。 输出描述: 为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等) 5.1 思路?1. 先有一个string类对象 s 保存结果 辗转相除的结果不只有数字还有 A 到 F 字母 maptable 对象 存放? 2. 判断是否为负数是的话就在最后加上 - 就好了 3. 你辗转相除的结果就是反过来的也就是逆序的? 在最后拼接的时候就是 将 s 放在后面 5.2 代码实现
6. 删除公共字符描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” 输入描述:每个测试输入包含2个字符串 输出描述:输出删除后的字符串 6.1 思路1. 这个题的第一思路就是遍历字符串s1 然后从 s2 第一个开始找找完一次删一个 然后指针++ 移动到 s2 的第二个,这样的话时间复杂度很高就是O( N ^ 2); 2. 可以用哈希映射的方式来处理; 3. 给一个hashtable 先遍历 s2 统计一下s2中字符出现的个数 给一个 string 类对象 ret 接受返回值,s1 映射过来如果等于0的话就说明这个字符没在 s2 中出现过直接拼接到 ret 上; 6.2 代码实现
7. 倒置字符串描述将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100 输出描述:依次输出倒置之后的字符串,以空格分割 7.1 思路这个一个利用stack特性的一种巧解的思路? 7.2 代码实现
8.?字符串中找出连续最长的数字串描述读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。 输出描述:在一行内输出str中里连续最长的数字串。 8.1 思路1. 实例化两个string对象 cur 和 ret 一个是当前的字符串,一个是要返回的字符串; 2. 判断是否是数字是的话拼接cur 一次次更新直到找到最长的数字串; 8.2 代码实现
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 5:41:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |