![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机试题目
靓仔明华
这个作者很懒,什么都没留下…
展开
-
【机试题目】链表反转
输入一个链表,反转链表后,输出新链表的表头。题目链接题目思路:1、设置三个节点,分别代表当前节点(cur)、前序节点(p)、后序节点(pp)。2、对每个节点转换链表连接方向 pp = cur->next; //pp保存当前节点下一个节点 cur->next = p; //将当前节点cur的next节点链接到前序节点p p = cur; //向后推进链表节点位置 cur = pp; //向后推进链表节点位置代原创 2021-04-25 15:40:49 · 94 阅读 · 0 评论 -
【机试题目】数组中的最长连续子序列
给定无序数组arr,返回其中最长的连续序列的长度(值连续,位置无需连续)题目链接题目思路:1、对数组元素进行排序2、设置两个变量max和maxFinal,max记录当前序列最大连续长度,maxFinal记录最终的所有序列中最大连续长度。3、如果前一个元素取值等于后一个元素取值-1,则最大连续长度max++,如果前一个元素取值小于后一个元素,则重新开始计算最大连续长度max。每一次循环后判断max和maxFinal的大小,如果max>maxFinal,则将max赋值给maxFinal。代码:原创 2021-04-25 11:56:56 · 364 阅读 · 0 评论 -
【机试题目】扑克牌顺子
如果五张牌是连续的就输出true,否则就输出false。题目链接题目思路:无论对于牌中是否有0的场景,都只需要考虑下列两个问题:1⃣️扑克牌五连顺子中(最大值-最小值)不能大于42⃣️顺子中不能出现重复值:对扑克牌先排序,重复值一定出现在相邻的牌中,使用变量pre保存之前一个牌的数值,每次和后面的牌进行比较。注意点:1⃣️sort()函数对数组进行排序,头文件是#include <algorithm >。2⃣️max的初始值设置为最小值,min的初始值设置为最大值。代码:cl原创 2021-04-20 18:11:36 · 294 阅读 · 0 评论 -
【机试题目】滑动窗口的最大值
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值题目链接题目思路:✨因为要得到每一个滑动窗口中数值的最大值,所以分为两种情况考虑:a.前一个窗口的最大值仍在当前窗口中:只需比较前一个窗口中最大值和当前窗口最右边的值b.前一个窗口的最大值不在当前窗口中:将当前窗口最大值设置为窗口最左边的值,然后循环比较整个窗口的值,得到最大值。注意点:1⃣️c++ vector的使用:参考博客代码:class Solution {public: vector<int> m原创 2021-04-20 15:15:46 · 204 阅读 · 0 评论 -
【机试题目】字符串变形(Hello World -> wORLD hELLO)
将空格隔开的单词反转顺序,不改变单词内部顺序,并反转大小写(c++)题目链接题目思路:1⃣️先反转整个字符串,再反转每个单词,这样就可以做到只反转每个单词的位置顺序,不反转每个单词的内部顺序。2⃣️使用字符ASCII码转换反转大小写注意点:1⃣️c++中字符串反转的reverse()方法:reverse函数用于反转在[first,last)范围内的顺序(包括first指向的元素,不包括last指向的元素),reverse函数无返回值,头文件是#include <algorithm >原创 2021-04-20 10:37:54 · 842 阅读 · 0 评论 -
【机试题目】删除有序链表中出现的重复元素
删除有序链表中出现的重复元素(c++)题目链接题目思路:1⃣️由于第一个head节点也有可能被删除,所以在head节点之前加一个头节点front,值为空。2⃣️设置两个指针,pre和front3⃣️判断now的值和now->next的值是否相等:1)如果相等,保存当前pre指针位置(Dstart = pre),之后向后移动pre指针和now指针,pre = now,now = now->next,while循环不断判断pre指向节点的值和now指向节点的值是否相等,如果相等,则删除p原创 2021-04-19 15:43:50 · 158 阅读 · 0 评论