![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
大姐姐毕宿五
先做自己该做的,再做自己想做的。
展开
-
代码题--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 · 951 阅读 · 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 · 140 阅读 · 0 评论 -
代码题--C++--小米--英文句子字符串反转
代码题--C++--小米--英文句子字符串反转题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”。输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求输出句子中单词反转后形成的句子示例1输入hello xiao mi输出mi xiao hello解题思路原创 2020-11-30 19:42:17 · 269 阅读 · 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 · 588 阅读 · 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 · 498 阅读 · 1 评论 -
剑指offer--代码题目3--顺时针打印矩阵
剑指offer--代码题目3--顺时针打印矩阵 我在牛客网刷题,用的都是C++语言,解题思路都一样。这个题如果理清打印顺序,其实不难。 解题思路:顺时针打印就是按圈数循环打印,所以先算圈数,一圈包含两行或者两列,比较行和列哪个小,小的就是圈数。在打印的时候会出现某一圈中只包含一行。用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。提交代码时,主要的问题出在没有控制好后两个for循环,需要加入条件判断,防止出现单行或者单列的...原创 2020-09-15 16:36:43 · 75 阅读 · 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 · 271 阅读 · 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 · 225 阅读 · 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 · 190 阅读 · 0 评论 -
代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串
代码题--C++--构建短字符串判断用长字符串是否可以组成短字符串题目描述给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。输入描述:一行数据包括一个较短的字符串S和一个较长的字符串T,用一个空格分隔。保证1<=|S|<=|T|<=100000。输出描述:如果短的字符串可以由长字符串中的字符构建出来,输出字符串 “true”,否则输出字符串 "false"。示例1输入a b输出fals原创 2020-11-21 13:39:11 · 275 阅读 · 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 · 534 阅读 · 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 · 376 阅读 · 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 · 240 阅读 · 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 · 520 阅读 · 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 · 122 阅读 · 0 评论 -
剑指offer--(2.3.4)链表找到第一个含某值得结点并删除该结点
剑指offer--(2.3.4)链表找到第一个含某值得结点并删除该结点1.给一个链表的末尾加一个结点,2.链表中找到第一个含某值得结点并删除该结点。struct ListNode{ int m_nValue; ListNode* m_pNext;};第一小问解答代码如下://给该链表的末尾中添加一个节点void AddToTail(ListNode** pHea...原创 2020-04-15 00:25:46 · 183 阅读 · 0 评论 -
剑指offer--(2.3.3)面试题4:替换空格
剑指offer--(2.3.3)面试题4:替换空格题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如:输入“We are ”原创 2020-04-14 22:23:48 · 149 阅读 · 0 评论 -
剑指offer--(2.3.2)面试题3:二维数组中的查找
剑指offer--(2.3.2)面试题3:二维数组中的查找题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如这个数组中,查找7,返回true;查找5,返回flase。解决方法:从右上角开始,如果该数字等于要查找的数字,查找过程结束,结果该数字大于要查找的数字,...原创 2020-04-14 20:26:46 · 122 阅读 · 0 评论 -
剑指offer--(2.3.1)--数组内存
剑指offer--(2.3.1)数组 数组内存是连续的,时间效率很高,可以用数组实现简单的哈希表:把数组的下标设为哈希表的键值,而把数组中的每一个数字设为哈希表的值,这样每一个下标及数组中该下标对应的数字就组成一个键值-值得配对。为区分数组和指针,代码运行出来,问输出是什么?int GetSize(int data[]){ return sizeof(data)...原创 2020-04-14 18:35:42 · 78 阅读 · 0 评论 -
剑指offer--(2.2)面试题2:实现Singleton模式
剑指offer--(2.2)面试题2:实现Singleton模式题目:设计一个类,我们只能生成该类的一个实例这个题目容易考,但是我写的都是课本中会提到的,看到一个博主,非常推荐去学习他的文章:https://blog.csdn.net/derrantcm/article/details/45330779他的博文知识更多。/*1.只适用于单线程环境*/public se...原创 2020-04-12 22:47:37 · 115 阅读 · 0 评论 -
剑指offer——(2.1)面试题1:赋值运算符函数
剑指offer——(2.1)面试题1:赋值运算符函数题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void);private: char...原创 2020-04-11 18:23:50 · 94 阅读 · 0 评论 -
剑指offer——(2)面试需要的基础知识
剑指offer——(2)面试需要的基础知识 一起学习吧~ P37——P100 这章中主要带读者进入面试中会很注重的3个方面,编程语言,数据结构,算法和数据操作。通过例题讲到面试官会注重的方面以及面试者会遗漏的点。2.1 大多面试官会对C++情有独钟,其中除了C++的面向对象的基础知识,还需要学习算法设计,内存管理,文件操作,多线程,程序安...原创 2020-04-10 16:27:17 · 107 阅读 · 0 评论 -
剑指offer——(1)面试的流程
剑指offer——(1)面试的流程 一起学习吧~ P18——P36 最近将《剑指offer》刚学习完,准备将大家都hi选择的这本书知识点总结一下,自己巩固一遍,也分享给大家,在之前也看过大佬们的总结,学到了很多,感谢以及点赞。我的文章可能会偏细一点,除了代码的编写,还有部分是自己觉得需要提及的。 第一章就主要讲了每位面试者都会经历的面试环节。作...原创 2020-04-09 13:26:13 · 122 阅读 · 0 评论