面试题
大姐姐毕宿五
先做自己该做的,再做自己想做的。
展开
-
代码题--C++--任意进制间转换将十进制数转换为任意进制
代码题--C++--任意进制间转换将十进制数转换为任意进制题目描述设计一个函数, 可以将任意十进制的数, 转换成任意2到9的进制表示的形式。输入描述:需要转换的数字x(0<=x<=1e18) 转换使用的进制k(2<=k<=9)输出描述:对应进制的结果示例1输入33 2输出100001解题思路:首先要知道怎么算n进制的数,就是将数字除以n每次得到的余数将按n的0次方开始得出的值,然后先用一个长为64的数组存放值,然后从后向前输出数据,就是转换后的数据。原创 2020-12-03 21:04:37 · 932 阅读 · 0 评论 -
代码题--C++--牛客网小米求二叉树的高度
代码题--C++--牛客网小米求二叉树的高度题目描述现在有一棵合法的树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度。输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4输出3解题思路:代码如下:#include <iostrea原创 2020-12-02 23:50:25 · 126 阅读 · 0 评论 -
代码题--C++--小米--英文句子字符串反转
代码题--C++--小米--英文句子字符串反转题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”。输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求输出句子中单词反转后形成的句子示例1输入hello xiao mi输出mi xiao hello解题思路原创 2020-11-30 19:42:17 · 256 阅读 · 0 评论 -
代码题--C++--牛客网--牛牛掷硬币--掷硬币全为正面或者全为反面的概率
代码题--C++--牛客网--牛牛掷硬币--掷硬币全为正面或者全为反面的概率题目描述牛牛最近很喜欢掷硬币,由于他今天很无聊,所以他在家掷了n次硬币,如果这n次硬币全部朝上或者全部朝下牛牛就很开心,请问牛牛开心的概率是多少。(每次掷硬币朝上的概率与朝下的概率相同)示例1输入1返回值"1.00"说明概率为1,四舍五入保留两位小数的字符串为"1.00"示例2输入5返回值"0.06"说明概率为0.0625,四舍五入保留两位小数的字符串为"0.06"备注:对于50\%50%原创 2020-11-28 00:28:24 · 564 阅读 · 0 评论 -
笔试代码题--米哈游--顺时针打印矩阵字母
笔试代码题--米哈游--顺时针打印矩阵字母#include <stdio.h>#include <string>#include <iostream>#include <vector>using namespace std;int main(){ int m,n; cin >> m >> n; vector<vector<char>> vec1(m,vector<ch..原创 2020-09-19 23:50:28 · 478 阅读 · 1 评论 -
剑指offer--代码题目3--顺时针打印矩阵
剑指offer--代码题目3--顺时针打印矩阵 我在牛客网刷题,用的都是C++语言,解题思路都一样。这个题如果理清打印顺序,其实不难。 解题思路:顺时针打印就是按圈数循环打印,所以先算圈数,一圈包含两行或者两列,比较行和列哪个小,小的就是圈数。在打印的时候会出现某一圈中只包含一行。用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。提交代码时,主要的问题出在没有控制好后两个for循环,需要加入条件判断,防止出现单行或者单列的...原创 2020-09-15 16:36:43 · 67 阅读 · 0 评论 -
代码题--C++--小米--二分查找
代码题--C++--小米--二分查找题目描述请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例1:输入5,4,[1,2,4,4,5]返回值3说明输出位置从1开始计算,所以上面是输出3,5是数组长度,4是要查找的数字,后面是数组解题思路:二分查找就是先从最中间的数字开始比较,如果中间数字大于要查找的数字,然后先排除掉小于最小数字的,即mid==0时,以及为了输出第一个大于等于的值,即满足a[mid-原创 2020-11-27 17:23:03 · 249 阅读 · 0 评论 -
代码题--C++--小米--电话号码分身--用字母识别电话号码
代码题--C++--小米--电话号码分身--用字母识别电话号码题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。输入描述:第一行是一个整数T(1 ≤ T ≤ 100)表示原创 2020-11-27 00:22:48 · 207 阅读 · 0 评论 -
代码题--C++--懂二进制两个int32整数的二进制不同的个数
代码题--C++--懂二进制两个int32整数的二进制不同的个数题目描述世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?示例1输入1999 2299返回值7解题思路1:因为32位,所以循环次数是32,然后二进制位的末尾呢个数字其实就是取余2之后的值,然后一个一个判断之后的,每次将值右移1(m>>1;n>>1;),也相当于除以2(m/=2;n/=2;)。#include <ios原创 2020-11-25 22:39:20 · 172 阅读 · 0 评论 -
代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串
代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串题目描述给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。输入描述:一行数据包括一个较短的字符串S和一个较长的字符串T,用一个空格分隔。保证1<=|S|<=|T|<=100000。输出描述:如果短的字符串可以由长字符串中的字符构建出来,输出字符串 “true”,否则输出字符串 "false"。示例1输入a b输出fals原创 2020-11-21 13:39:11 · 263 阅读 · 0 评论 -
代码题--C++--最少立方数之和每个数最少可以写成几个数的立方和
代码题--C++--最少立方数之和题目描述给出一个数字N(0<N<1000000),将N写成立方数和的形式,求出需要的最少立方数个数。例如N=17,1+8+8 = 17,最少需要3个立方数,则输出3。N= 28,1+1+1+1+8+8+8=28, 需要7个立方数,1+27=28,需要2个立方数,所以最少立方数为2,则输出2。输入描述:一个数字N(0<N<1000000)输出描述:最少立方数个数示例1输入28输出2解题思路:C++代码:.原创 2020-11-21 13:04:28 · 508 阅读 · 0 评论 -
代码题--C++--求数列的第n项牛客网第n个数所在的那一层之前的所有层里共有多少个数
代码题--C++--求数列的第n项牛客网第n个数所在的那一层之前的所有层里共有多少个数题目描述:米兔从兔米那里了解到有一个无限长的数字序列 1, 2,3,3,4,4,4, 5,5,5,5,5 ...,(已知此数列有一定规律,现将这些数字按不同数值堆叠,相同值的数字在同一层)。米兔想知道这个数字序列的第n个数所在的那一层之前的所有层里共有多少个数。输入描述:n(n<=1e18)输出描述:第n个数所在的那一层之前的所有层里共有多少个数示例1输入6输出4解题思路:...原创 2020-11-21 00:14:24 · 360 阅读 · 0 评论 -
代码题--C++--合并两个有序数组
代码题--C++--合并两个有序数组题目描述:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:...原创 2020-11-19 22:19:55 · 232 阅读 · 0 评论 -
代码题--C++--偶数在前奇数在后牛客网数组操作
代码题--C++--偶数在前奇数在后牛客网数组操作题目描述:输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。要求时间复杂度为O(n)。解题思路:函数中实现,用高低指针,然后判断,如果低位数%2为0,则low++,前面找到奇数,高位数%2为1,则high--,后面找到偶数,然后交换。C++具体实现如下:#include <iostream>using namespace std;int arr[1000005]原创 2020-11-18 19:01:49 · 510 阅读 · 0 评论 -
代码题--C++--旋转数组求最小值
代码题--C++--旋转数组求最小值题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。输入描述:一个排好序的数组的一个旋转数组长度不超过1000000输出描述:该数组的最小值示例1输入3 4 5 1 2输出1解题思路:使用二分查找的方法,逐步的逼近这个最小值,首先这个旋转数组将一个非递减原创 2020-11-18 17:18:09 · 112 阅读 · 0 评论 -
笔试代码题--百度--C++--树上最短路径
笔试代码题--百度--C++--树上最短路径题目:对于一颗完全二叉树(对于有孩子的节点i,其左孩子为2*i,右孩子为2*i+1),给定的两个点之间的最短路的长度是多少,我们认为相邻两点之间的距离为1。输入描述:第一行输入一个整数T,表示测试数据共有T组对于每组测试数据,输入两个整数表示所询问的节点的标号输出描述:对于每组数据,输出一个整数表示答案输入:31 24 148 5输出:153解题思路:在具体实现,先将a ,b的大小比较,确定原创 2020-11-13 15:56:19 · 250 阅读 · 0 评论 -
面试题--5个数能组成多少中不同的二叉搜索树的结构--卡特兰数
面试题--5个数能组成多少中不同的二叉搜索树的结构--卡特兰数题目描述:1,2,3,4,5 五个数字,能组成多少种不同的二叉搜索树的结构?(D)A. 32B. 36C. 40D. 42解析:满足卡特兰数:h(n)=C(2n,n)/(n+1) (n=0,1,2,…)h(n) = C(10, 5) / 6 = (10*9*8*7*6)/(5*4*3*2*1)=252 / 6 = 42卡特兰数是组合数学中的一种著名数列,通常用如下通项式表示(为了不与组合数C冲突,本文用f 表示.原创 2020-10-10 10:29:38 · 1723 阅读 · 0 评论