![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
文章平均质量分 58
彼方尚有荣光在
追梦偏执狂
在疯狂与不疯狂之间游荡,就很nice
展开
-
力扣:287. 寻找重复数
题目链接:287. 寻找重复数题目:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3提示:1 <= n <= 1原创 2022-05-15 21:42:56 · 390 阅读 · 0 评论 -
力扣:153. 寻找旋转排序数组中的最小值
题目链接:153. 寻找旋转排序数组中的最小值题目:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..原创 2022-05-10 11:29:10 · 175 阅读 · 0 评论 -
力扣:剑指 Offer 11. 旋转数组的最小数字
题目链接:剑指 Offer 11. 旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1]原创 2022-05-10 10:47:24 · 181 阅读 · 0 评论 -
力扣:154. 寻找旋转排序数组中的最小值 II
题目链接:154. 寻找旋转排序数组中的最小值 II题目:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2]原创 2022-05-10 11:10:25 · 285 阅读 · 0 评论 -
力扣:240. 搜索二维矩阵 II
题目链接:240. 搜索二维矩阵 II题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例 2:输入:matrix = [[1原创 2022-05-09 22:50:12 · 193 阅读 · 0 评论 -
力扣:剑指 Offer 04. 二维数组中的查找
题目链接:剑指 Offer 04. 二维数组中的查找题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26,原创 2022-05-09 22:35:04 · 663 阅读 · 0 评论 -
力扣:162. 寻找峰值
题目链接:162. 寻找峰值题目:““峰值元素是指其值严格大于左右相邻值的元素。””给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1原创 2022-05-03 16:38:25 · 166 阅读 · 0 评论 -
力扣:167. 两数之和 II - 输入有序数组
题目链接:167. 两数之和 II - 输入有序数组题目:给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。 以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1原创 2022-04-28 20:52:49 · 481 阅读 · 0 评论 -
力扣:剑指 Offer 03. 数组中重复的数字
题目链接:剑指 Offer 03. 数组中重复的数字题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000代码(c++):方案一:哈希表建立一个哈希表hash,在循环遍历nums数组时,判断当原创 2022-04-28 17:03:58 · 361 阅读 · 0 评论 -
力扣:268. 丢失的数字
题目链接:268. 丢失的数字题目:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它原创 2022-04-28 16:31:14 · 479 阅读 · 0 评论 -
力扣:剑指 Offer 53 - II. 0~n-1中缺失的数字
题目链接:剑指 Offer 53 - II. 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限制:1 <= 数组长度 <= 10000思路和算法:本题思路:(1)对于排序数组的搜索问题,首先想到二分法解原创 2022-04-28 15:35:11 · 149 阅读 · 0 评论 -
力扣:剑指 Offer 53 - I. 在排序数组中查找数字 I
题目链接:剑指 Offer 53 - I. 在排序数组中查找数字 I题目:统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0提示:0 <= nums.length <= 105-109 <= nums[i] <= 109nums 是一个非递减数组-109 <= tar原创 2022-04-28 11:15:33 · 132 阅读 · 0 评论 -
力扣:54. 螺旋矩阵
题目链接:54. 螺旋矩阵题目:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m == matrix.lengthn ==原创 2022-04-28 01:01:50 · 671 阅读 · 0 评论 -
力扣:剑指 Offer 29. 顺时针打印矩阵
题目链接:剑指 Offer 29. 顺时针打印矩阵题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100原创 2022-04-28 00:41:18 · 298 阅读 · 0 评论 -
力扣:169. 多数元素
题目链接:169. 多数元素题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2思路和算法:从题目中可以抓到重点:数组非空,总是存在多数元素–》一定有返回值,且返回值非空。在这道题目里采用哈希表去重,然后定义一个变量cnt用来记录最多元素的个数,通过判断cnt值的变化原创 2022-04-08 10:33:56 · 181 阅读 · 0 评论 -
力扣题:904.水果成篮
题目链接:904.水果成篮题目:你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果: 你只有两个篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。 你可以选择任意一棵树开始采摘,你必须从每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右原创 2022-03-27 16:43:26 · 1104 阅读 · 0 评论 -
力扣题:209. 长度最小的子数组
题目链接:209. 长度最小的子数组题目:给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, n原创 2022-03-24 21:43:23 · 219 阅读 · 0 评论 -
力扣题:977. 有序数组的平方
题目链接:977. 有序数组的平方题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]… … . 排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]进阶:请你设计时间复杂度为原创 2022-03-23 19:38:28 · 353 阅读 · 0 评论 -
力扣题:844. 比较含退格的字符串
题目链接:844. 比较含退格的字符串题目:给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:s = “ab#c”, t = “ad#c”输出:true解释:s 和 t 都会变成 “ac”。示例 2:输入:s = “ab##”, t = “c#d#”输出:true解释:s 和 t 都会变成 “”。示例 3:输入:s = “a#c”, t =原创 2022-03-23 17:32:30 · 1495 阅读 · 0 评论 -
力扣题:283.移动零
题目链接:283.移动零题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]思路和算法:说说我的想法吧,我拿到这一题的时候,我想到的是用双指针来实现。一个指针p1用来找到零的位置,一个指针p2用来在p1的基础上找到第一个非零的位置。做这原创 2022-03-23 10:45:08 · 405 阅读 · 0 评论 -
力扣题:26. 删除有序数组中的重复项
题目链接:26. 删除有序数组中的重复项题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。 将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(原创 2022-03-22 21:44:45 · 271 阅读 · 0 评论 -
力扣题:27移除元素
题目链接:27.移除元素题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int len = removeE原创 2022-03-21 19:20:54 · 91 阅读 · 0 评论 -
力扣题:34. 在排序数组中查找元素的第一个和最后一个位置
题目链接:34在排序数组中查找元素的第一个和最后一个位置题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target原创 2022-03-21 15:57:48 · 240 阅读 · 0 评论 -
力扣题:69x的平方根
题目链接:https://leetcode-cn.com/problems/sqrtx/题目:给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例1:输入:x = 4输出:2示例2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。思路和算法:原创 2022-03-16 15:16:05 · 392 阅读 · 0 评论 -
力扣题:367有效的完全平方数
题目链接:https://leetcode-cn.com/problems/valid-perfect-square/题目:给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。示例1:输入:num = 16输出:true示例2:输入:num = 14输出:false思路和算法:这里采用二分查找的方法。如果一个数是完全平方数,即mid * mid = num,那么一定有 1 <= mid <= num原创 2022-03-16 14:04:46 · 372 阅读 · 0 评论 -
力扣:35 搜索插入位置
35 搜索插入位置题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [原创 2021-11-21 19:22:41 · 209 阅读 · 0 评论 -
力扣:704 二分查找
704二分查找题目链接:https://leetcode-cn.com/problems/binary-search/题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,原创 2021-11-21 18:34:59 · 347 阅读 · 0 评论