Fork me on GitHub
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如,输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。 牛客网刷题地址思路分析对于数字m和n,可以拼接成mn和nm,如果mn list = new ArrayList(); for(int num : nu... 阅读全文
posted @ 2019-08-19 23:55 这个世界~ 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 数字以0123456789101112131415..的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。[牛客网刷题地址] 无思路分析数字位数为1时 ,共有10个1位数数字位数为2时 ,共有9*10个2位数数字位数为3时 ,共有9*(10^2)个3位... 阅读全文
posted @ 2019-08-19 23:02 这个世界~ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12, 1~12这些整数中包含1的数字有1、10、11和12,1一共出现了5次。牛客网刷题地址思路分析 对于整数n,我们将这个整数分为三部分:当前位数字cur,更高位数字high,更低位数字low,如:对于n=21034,当位数是十位时,cur=3,high=210,l... 阅读全文
posted @ 2019-08-19 21:58 这个世界~ 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。牛客网刷题地址思路分析 动态规划的思想,可总结为如下公式:当以第i个数字结尾的子数组中所有数字的和 0时,则与第i个数字累加就得到以第i个数字结尾的子数组中所有数字的和。测试用例功能测试:从数据流中读出奇数... 阅读全文
posted @ 2019-08-19 20:39 这个世界~ 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。牛客网刷题地址思路分析将插入数据存放在小顶堆和大顶堆中,我们先... 阅读全文
posted @ 2019-08-19 17:58 这个世界~ 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入n个整数,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。牛客网刷题地址思路分析利用Patition函数,将数组分成两部分,判断返回的值是否在第k个位置,如果是,那么前k个数即为所求的数,如果小于k,那么在右边,如果大于k,在左边。利用大顶推,将数组中前k个值放入大顶推中,后面的... 阅读全文
posted @ 2019-08-19 17:18 这个世界~ 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如,输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。牛客网刷题地址思路分析 有两种思路:快速排序的思想:数字次数超过一半,可以说明排序之后中间的数字一定是所求的数字,即统计学上的中位数,利用partit... 阅读全文
posted @ 2019-08-19 12:34 这个世界~ 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个字符串,打印出该字符串中字符的所有排列。例如,输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、 bac、bca、cab和cba。 牛客网刷题地址思路分析 将字符串看成两部分,第一部分为第一个位置的字符,第二部分为剩下的字符,那么,要求这个字符串的操作就可以分为两步: 1. 求第一部分可能出现在第... 阅读全文
posted @ 2019-08-19 10:03 这个世界~ 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述请实现两个函数,分别用来序列化和反序列化二叉树。二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二... 阅读全文
posted @ 2019-08-19 08:51 这个世界~ 阅读(86) 评论(0) 推荐(0) 编辑