
牛客网刷题C++
昕昕向荣
这个作者很懒,什么都没留下…
展开
-
牛客网刷题(一) 从尾到头打印链表
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { stack<int> stack; vector<int> vector; ...原创 2018-10-24 21:42:15 · 138 阅读 · 0 评论 -
牛客网刷题(二) 旋转数组的最小值
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateA...原创 2018-10-30 15:04:07 · 156 阅读 · 0 评论 -
牛客网刷题(三)找出数组中重复的数字
题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路:要找到第一个重复的数字,我们可以借鉴哈希的思路,将数组中的值存储到与之下标相同的数组中,比如说a[1]=2,则将...原创 2018-11-15 19:56:51 · 507 阅读 · 0 评论 -
牛客网刷题(四) 2^n(n>=512)
题目:写一个算法实现2的n次方(n>=512)。 输入:一个数字n 输出:2的n次方思路:想要求2^n的值我们首先可能会想到的办法,就是直接计算,但是由于2^n(n>=512)的值过大,没有办法用平常的类型进行存储,所以编译器会直接显示值为0,导致结果错误,那么此时,我们就该思考,应该用什么来存储这个过大的值,我们首先可能会考虑到数组...原创 2018-11-17 16:18:12 · 461 阅读 · 0 评论 -
牛客网刷题(五) 寻找回文串(马拉车算法)
题目:设计一个算法,寻找字符串中的最长回文子串。输入一行:一个字符串输出两行:最长回文子串的长度(无则输出0)最长回文子串(无则输出空行)思路:一个回文串它的对称中心可能是某个字符(aba),也可能是某两个字符之间(aa),理论上我们应该分类讨论?但实际上我们这样操作,我们把字符串变成这样(#a#b#)(#a#b#a#)这样一来,无论是什么字符串,它的长度都是奇数,只...原创 2018-11-17 21:09:20 · 195 阅读 · 0 评论