数组
LeetCode刷题分类——数组
阿清~
这个作者很懒,什么都没留下…
展开
-
《剑指offer》刷题系列——(九)顺时针打印矩阵
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 :输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]思路实例分析测试用例解法复杂度分析原创 2020-06-11 20:47:58 · 116 阅读 · 0 评论 -
《剑指offer》刷题系列——(十一)0~n-1中缺失的数字
题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8思路因为0~n-1这些数字在数组中是排序的,因此数组中开始的一些数字与它们的下标相同,也就是说,0在下标为0的位置,1在下标为1的位置。如果不在数组中的某个数字为m,那么所有比m小的数字都与它们的下标相同,但是比m原创 2020-06-13 17:41:26 · 391 阅读 · 0 评论 -
《剑指offer》刷题系列——(十)在排序数组中查找数字
题目统计一个数字在排序数组中出现的次数。思路解法复杂度分析原创 2020-06-13 16:49:49 · 203 阅读 · 0 评论 -
《剑指offer》刷题系列——(五)调整数组顺序使奇数位于偶数前面
题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路实例分析测试用例解法复杂度分析原创 2020-06-05 17:22:46 · 143 阅读 · 0 评论 -
《剑指offer》刷题系列——(三)旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。思路实例分析测试用例解法复杂度分析...原创 2020-05-28 19:38:02 · 93 阅读 · 0 评论 -
《剑指offer》刷题系列——(二)二维数组中的查找
题目在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 2, 8, 9],[2, 4, 9, 12],[4, 7, 10, 13],[6, 8, 11, 15],]给定 target = 7,返回 true。给定 target = 5,返回 false。思路首先选取数组中右上角的数字。如果该数字等于t原创 2020-05-24 16:44:02 · 219 阅读 · 0 评论 -
《剑指offer》刷题系列——(一)数组中重复的数字
题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路解法...原创 2020-05-24 12:01:29 · 163 阅读 · 0 评论 -
《剑指offer》刷题系列——(六)数组中出现次数超过一半的数字
题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如,输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现的次数还要多。因此我们在遍历数组的时候保存两个值:一个是数组中的数字result;另一个是次数time。当我们遍历到下一个数字的时候,如果下一个数字与之前保存的数字相同,则次数+1,否则次数-1;如果原创 2020-06-06 12:34:54 · 140 阅读 · 0 评论