排序 查找
码奴生来就只知道前进
我的GitHub账号:www.github.com/Mrhuangyi
展开
-
287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数...原创 2019-12-24 19:43:02 · 424 阅读 · 0 评论 -
1028 List Sorting (25)(25 分)
1028 List Sorting (25)(25 分) Excel can sort records according to any column. Now you are supposed to imitate this function.InputEach input file contains one test case. For each case, the first li...原创 2018-07-23 11:27:03 · 632 阅读 · 0 评论 -
153. 寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0这道题乍一看很纳闷,求最小元素不是一个sort...原创 2018-07-06 20:32:44 · 355 阅读 · 0 评论 -
1075 PAT Judge (25)(25 分)
The ranklist of PAT is generated from the status list, which shows the scores of the submittions. This time you are supposed to generate the ranklist for PAT.Input Specification:Each input file co...原创 2018-07-26 11:48:40 · 631 阅读 · 0 评论 -
74. 搜索二维矩阵
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例 2:...原创 2018-07-20 23:54:08 · 597 阅读 · 0 评论 -
154. 寻找旋转排序数组中的最小值 II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例 2:输入: [2,2,2,0,1]输出: 0分析:查找旋转了的排序数组,数组里允许存在重复元素,我们知道在一...原创 2018-09-08 15:44:05 · 241 阅读 · 0 评论 -
162. 寻找峰值
峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引...原创 2018-09-10 13:44:34 · 2532 阅读 · 1 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], targ...原创 2018-11-04 22:40:28 · 248 阅读 · 0 评论 -
179. 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。思路:这道题其实还挺好想的,就考了个排序。我们自己写个比较函数,假设数组中只有两个数的情况下,其实只有两种排列情况,一个在前一个在后,或者倒一下。...原创 2018-11-23 21:32:49 · 810 阅读 · 0 评论 -
164. 最大间距
给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是...原创 2018-11-19 22:10:25 · 241 阅读 · 0 评论 -
215. 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。分析:我觉得这道题很典型很重要,要吃...原创 2018-11-28 20:44:31 · 382 阅读 · 0 评论 -
441. 排列硬币
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2. 示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤...原创 2018-07-04 19:11:57 · 362 阅读 · 0 评论 -
GPLT.L1-027. 出租
L1-027. 出租时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… ...原创 2018-04-13 15:35:34 · 200 阅读 · 0 评论 -
八大排序
插入排序(直接插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(直接选择排序、堆排序)归并排序分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序、希尔排序、堆排序直接插入排序基本思想:在要排序的一组数中,假设前面(n-1)个数已经有序,现在要把第n个数插到前面的有序数中,使得这n个数也是有序...原创 2018-04-20 19:57:31 · 1828 阅读 · 0 评论 -
LeetCode 69. x 的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4 输出: 2 示例 2:输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。这道题明显就是考察二分,面试时你总不可能给面试官直接...原创 2018-05-18 12:08:03 · 419 阅读 · 0 评论 -
L1-034 点赞(20 分)
L1-034 点赞(20 分) 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(<=1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F~1~...原创 2018-05-23 15:11:50 · 2293 阅读 · 1 评论 -
1055 集体照 (25)(25 分)
1055 集体照 (25)(25 分) 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:每排人数为N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、1...原创 2018-06-11 16:01:47 · 637 阅读 · 1 评论 -
1035 插入与归并(25)(25 分)
1035 插入与归并(25)(25 分) 根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原始序列和由某排...原创 2018-06-04 20:31:54 · 731 阅读 · 1 评论 -
1045 快速排序(25)(25 分)
1045 快速排序(25)(25 分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主元;\尽管...原创 2018-06-06 14:52:46 · 882 阅读 · 1 评论 -
374. 猜数字大小
我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。 每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小 1 : 我的数字比较大 0 : 恭喜!你猜对了! 示例:n = 10, 我选择 6....原创 2018-06-14 14:09:10 · 2041 阅读 · 0 评论 -
L2-009 抢红包(25 分)
L2-009 抢红包(25 分) 没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(<= 10^4^),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N~1~ P~1~ … N~K~ P~K~其中K(0 <= K &l...原创 2018-05-31 17:12:10 · 1336 阅读 · 0 评论 -
1019 数字黑洞 (20)(20 分)
1019 数字黑洞 (20)(20 分) 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 1089\ 9810 - 0189 = 962...原创 2018-06-01 10:26:23 · 3099 阅读 · 2 评论 -
367. 有效的完全平方数
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。注意:不要使用任何内置的库函数,如 sqrt。示例 1:输入: 16输出: True示例 2:输入: 14输出: False法一:二分class Solution {public: bool isPerfectSquare(int num...原创 2018-06-10 21:13:51 · 1781 阅读 · 1 评论 -
744. 寻找比目标字母大的最小字母
给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母。数组里字母的顺序是循环的。举个例子,如果目标字母target = ‘z’ 并且有序数组为 letters = [‘a’, ‘b’],则答案返回 ‘a’。示例:输入:letters = ["c", "f", "j"]target = "a"输出: "c"输入...原创 2018-07-04 18:25:26 · 702 阅读 · 2 评论 -
2017hdu新生赛
最大收益Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1359 Accepted Submission(s): 182Problem DescriptionElly的叔叔经营一家电脑装配公司Shume原创 2017-11-29 20:57:38 · 522 阅读 · 0 评论