《剑指Offer》题四十一~题五十
Posted xzxl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《剑指Offer》题四十一~题五十相关的知识,希望对你有一定的参考价值。
四十一、数据流中的中位数
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
四十二、连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
四十三、1~n整数中1出现的次数
题目:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1、10、11和12,1一共出现了5次。
四十四、数字序列中某一位的数字
题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。
四十五、把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的那个。例如,输入数组{3, 32, 321},则打印出这3个数字能排成的最小数字321323。
四十六、把数字翻译成字符串
题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻译成"b",……,11翻译成"l",……,25翻译成"z"。一个数字可能有多个翻译。例如,12258有5种不同的翻译,分别是"bccfi"、"bwfi"、"bczi"、"mcfi"和"mzi"。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
四十七、礼物的最大值
题目:在一个mxn的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?
四十八、最长不含重复字符的子字符串
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含‘a‘~‘z‘的字符。例如,在字符串"arabcacfr"中,最长的不含重复字符的子字符串是"acfr",长度为4。
四十九、丑数
题目:我们把只包含因子2、3和5的数称作丑数。求按从小到大的顺序的第1500个丑数。例如,6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数。
五十、第一个只出现一次的字符
题目一:字符串中第一个只出现一次的字符。在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出‘b‘。
题目二:字符流中第一个只出现一次的字符。请实现一个函数,用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是‘g‘;当从该字符流中读出前6个字符"google"时,第一个只出现一次的字符是‘l‘。
五十一、数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,在数组{7, 5, 6, 4}中,一共存在5个逆序对,分别是(7, 6)、(7, 5)、(7, 4)、(6, 4)和(5, 4)。
五十二、两个链表的第一个公共节点
题目:输入两个链表,找出它们的第一个公共节点。
五十三、在排序数组中查找数字
五十四、二叉搜索树的第K大节点
五十五、二叉树的深度
五十六、数组中数字出现的次数
五十七、和为S的数字
五十八、翻转字符串
五十九、队列的最大值
六十、n个骰子的点数
六十一、扑克牌中的顺子
六十二、圆圈中最后剩下的数字
六十三、股票的最大利润
六十四、求1+2+…+n
六十五、不用加减乘除做加法
六十六、构建乘积数组
六十七、把字符串转换成整数
六十八、树中两个节点的最低公共祖先
以上是关于《剑指Offer》题四十一~题五十的主要内容,如果未能解决你的问题,请参考以下文章