code
JohnLanbow
这个作者很懒,什么都没留下…
展开
-
剑指offer:扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K...原创 2020-04-16 22:03:38 · 78 阅读 · 0 评论 -
剑指offer:二叉搜索树的第k个结点
题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : v...原创 2020-04-14 17:40:15 · 88 阅读 · 0 评论 -
剑指offer:删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:先统计每个数字的出现次数,再遍历一遍删除重复数字,注意每删除一个头部元素,头指针要跟着移动ListNode *deleteDuplication(Lis...原创 2020-04-14 16:35:32 · 79 阅读 · 0 评论 -
剑指offer:滑动窗口的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...原创 2020-04-11 18:44:45 · 101 阅读 · 0 评论 -
剑指offer:机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?int xd[4] = {0, 0, ...原创 2020-04-11 17:52:46 · 74 阅读 · 0 评论 -
剑指offer:和为S的两个数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路:充分利用有序的前提条件,采用左右夹逼的思想,设置left = 0,right = len - 1,如果两端元素之和大于sum,此时right左移,两端元素之和可以减小;如果两端元素之和小于...原创 2020-04-11 11:39:42 · 72 阅读 · 0 评论 -
剑指offer:复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)暴力打法O(n^2)1、不考虑random,直接复制链表(此时random尚未赋值)2、对于原来链表的每一个节点,找到其对应的random在链表中的位置,记为in...原创 2020-03-31 16:49:05 · 75 阅读 · 0 评论 -
华为笔试题:查找兄弟单词
输入描述:先输入字典中单词的个数,再输入n个单词作为字典单词。输入一个单词,查找其在字典中兄弟单词的个数再输入数字n输出描述:根据输入,输出查找到的兄弟单词的个数示例1输入3 abc bca cab abc 1输出2bca#include <iostream>#include <map>#inc...原创 2020-03-29 21:39:54 · 198 阅读 · 0 评论 -
剑指offer:把字符串转成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+2147483647 1a33输出2147483647 0long long string2i...原创 2020-03-29 18:14:47 · 85 阅读 · 1 评论 -
剑指offer:按之字形顺序打印二叉树
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路在层序遍历的基础上,添加一个栈,并设置一个flag,当flag为true的时候从左至右打印,该层打印完成之后置flag为false;紧接着一层为从右只左打印,将该层的n个节点从队列中弹出,压入栈中,再依次从栈中弹出元素并打印,该...原创 2020-03-29 17:22:35 · 82 阅读 · 0 评论 -
快速排序
#include <iostream>using namespace std;void quickSort(int *ar, int left, int right) { int i = left; int j = right; while (i < j) { int pivot = ar[left]; while...原创 2020-03-22 17:48:39 · 62 阅读 · 0 评论 -
华为笔试题:求int型正整数在内存中存储时1的个数
题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)输出描述:这个数转换成2进制后,输出1的个数示例1输入5输出2#include <iostream>using namespace std;int main() { int n; cin...原创 2020-03-11 11:35:34 · 106 阅读 · 0 评论 -
华为笔试题:字串的连接最长路径查找
题目描述给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。示例1输入9captocatcardtwotooupboatboot输出boatboot...原创 2020-03-11 11:28:05 · 149 阅读 · 0 评论 -
华为笔试题:句子逆序
题目描述将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/***反转句子**@paramsentence原句子*@return反转后的句子*/publicStringreverse(Stringsentenc...原创 2020-03-11 10:19:10 · 171 阅读 · 0 评论 -
华为笔试题:字符串反转
题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入描述:输入N个字符输出描述:输出该字符串反转后的字符串示例1输入abcd输出dcba#include <iostream>#include <string>#include <algorithm>u...原创 2020-03-11 09:34:40 · 178 阅读 · 0 评论 -
华为笔试题:数字颠倒
题目描述描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出示例1输入1516000输出0006151#include <iostream>#include <st...原创 2020-03-11 09:13:20 · 242 阅读 · 0 评论 -
华为笔试题:字符个数统计
题目描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。输入描述:输入N个字符,字符在ACSII码范围内。输出描述:输出范围在(0~127)字符的个数。示例1输入abc输出3#include <iostream>#include <str...原创 2020-03-11 09:05:47 · 245 阅读 · 0 评论 -
华为笔试题:提取不重复的数
题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入9876673输出37689#include <iostream>#include <string>using namespace...原创 2020-03-11 08:58:44 · 77 阅读 · 0 评论 -
华为笔试题:合并表记录
题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入40 10 21 23 4输出0 31 23 4#includ...原创 2020-03-11 08:50:02 · 117 阅读 · 0 评论 -
华为笔试题:取近似值
题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值示例1输入5.5输出6#include <iostream>using namespace std;int approxi(float n){...原创 2020-03-10 18:40:33 · 117 阅读 · 0 评论 -
华为笔试题:字符串分割
题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc123456789输出abc000001234567890000000#includ...原创 2020-03-10 11:55:59 · 253 阅读 · 0 评论 -
华为笔试题:进制转换
题目描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入)输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。示例1输入0xA输出10#include <iostream>#include <string>#include <map>#include &l...原创 2020-03-10 11:30:43 · 398 阅读 · 0 评论 -
赛码网:约德尔测试
题目描述:兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德...原创 2020-03-08 12:11:45 · 144 阅读 · 0 评论 -
赛码网:翻转数组
给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个数组升序排列。其中数组片段[l,r]表示序列a[l], a[l+1], ..., a[r]。原始数组为a[1], a[2], ..., a[l-2], a[l-1], a[l], a[l+1], ..., a[r-1], a[r], a[r+1], a[r+2], ..., a[n-1], a[n...原创 2020-03-08 11:39:27 · 203 阅读 · 0 评论