
刷题
qq_36393555
这个作者很懒,什么都没留下…
展开
-
CCF 201612-2 火车购票
试题编号: 201612-2试题名称:火车购票时间限制:1.0s内存限制:256.0MB问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多原创 2016-10-29 16:35:37 · 510 阅读 · 0 评论 -
lintcode 6. 合并排序数组
题目:比较简单,因为A,B都是已经排好序的,只要用i,j同时对A,B进行索引,然后选择较小的数放入C中就可以了。代码:class Solution {public: /* * @param A: sorted integer array A * @param B: sorted integer array B * @return: A n原创 2017-12-05 20:06:41 · 289 阅读 · 0 评论 -
561. Array Partition I
题目:经验所得,排序好之后的和就是最大的。代码:class Solution {public: int arrayPairSum(vector& nums) { sort(nums.begin(),nums.end()); int sum=0; for(int i=0;i<nums.size();i=i+2)原创 2017-12-14 13:12:19 · 248 阅读 · 0 评论 -
lintcode 14. 二分查找
题目:题目比较简单,就是通过二分法找到数字。因为是给出第一次出现的下标,所以array[mid]>=target是比较好的选择。代码如下:class Solution {public: /** * @param nums: The integer array. * @param target: Target number to find.原创 2017-12-05 13:00:06 · 485 阅读 · 0 评论 -
leetcode 557. Reverse Words in a String III
题目:挺简单的,先用“ ”将每个单词分开,然后对每个分开的单词反转(利用reverse函数),把每个反转后的加到新的字符串上。最后别忘记每个单词间隔有个空格。代码如下:#include #includeclass Solution {public: string reverseWords(string s) { string ex="";原创 2017-12-21 16:06:20 · 202 阅读 · 0 评论 -
leetcode---617. Merge Two Binary Trees
题目:其实只要知道树的构造方法,那么这题也就没有难度了。但是注意要判断没有T1,或者没有T2的情况。代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tr原创 2017-11-15 13:51:13 · 196 阅读 · 0 评论 -
leetcode----461. Hamming Distance
题目如下:就是先把x,y转成二进制数,再比较有多少位不同,很简单。C++有bitset包,大大节约了二进制转换的时间。代码如下:#include class Solution {public: int hammingDistance(int x, int y) { bitset bitvec1; bitset bitvec2;原创 2017-11-14 14:26:28 · 203 阅读 · 0 评论 -
leetcode---657. Judge Route Circle
题目如下: 也是很简单的题,只要先判断是否是偶数,然后再判断UD,LR数目是否相等就可以了。代码如下:#include int num(string s, char c) //统计字符串中含有几个c字符{ int count = 0; for (int i = 0; i < s.length(); ++i) { if (c == s原创 2017-11-14 17:35:14 · 207 阅读 · 0 评论 -
CCF201503-2 数字排序
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,原创 2017-09-14 16:20:30 · 506 阅读 · 0 评论 -
从尾到头打印链表
既然反向输出链表,那就利用栈这个LIFO特性。堆栈中存节点的指针,而非节点的数据域的值。参考了剑指offer的代码,但是还是有点不明白为什么增加节点那里需要的函数参数是指向节点的指针的指针,有待以后继续思考。代码如下:#include#include#includeusing namespace std;struct ListNode{ int m_nKey; ListN原创 2017-03-22 22:08:39 · 230 阅读 · 0 评论 -
用两个队列实现一个栈
思路和两个栈实现队列一样。代码如下:#include#includeusing namespace std;class solution{public: void push(int x) { q1.push(x); } int pop() { if (q2.empty()) { while (!q1.empty()) { q2.push原创 2017-03-22 20:33:34 · 227 阅读 · 0 评论 -
用两个栈实现队列
剑指offer上的题目,因为我刚刚看过栈和队列,所以想练几个题目,再加强对栈和队列的认识。其实还算简单。就是第一个栈用来push,第二个栈用来delete。代码如下:#include#includeusing namespace std;class solution {public: void push(int x) { si1.push(x); } int pop原创 2017-03-22 11:29:58 · 196 阅读 · 0 评论 -
CCF201312-3 最大的矩形
之前想了很久都没有明白,看了一些博客,自己动手一步一步排之后终于知道怎么回事了。有了2种方法,其中第二种方法用了栈,但是怎么试都是20分,不知道怎么回事。解法一:各矩形高度存在height[n]数组中,从i=0开始遍历,可能的矩形长lenght=j-i+1,宽width=min(height[i]...height[j-1]),然后最大面积maxsquare=lenght*width,每次i+原创 2017-03-21 21:36:19 · 416 阅读 · 0 评论 -
CCF 201312-2
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出原创 2017-02-17 15:06:19 · 261 阅读 · 0 评论 -
leetcode 344. Reverse String
题目:十分简单,就是reverse()函数调用一下。代码如下:#include#includeclass Solution {public: string reverseString(string s) { reverse(s.begin(),s.end()); return s; }};原创 2017-12-24 13:17:02 · 198 阅读 · 0 评论