![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
SNAKEpc12138
这个作者很懒,什么都没留下…
展开
-
数组第五天:螺旋矩阵II
leetcode题目编号59.螺旋矩阵II给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]思路主要是模拟顺时针画矩阵的问题:填充上行从左到右填充右列从上到下填充下行从右到左填充左列从下到上由外向内一圈一圈这么画下去。可以发现这里的边界条件非常多,在一个循环中,如此多的边界条件,如果不按照固定规则来遍历,肯定是非常混乱的。因此之前转载 2021-03-26 14:54:22 · 67 阅读 · 0 评论 -
数组第四天:滑动窗口
leetcode编号209:长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。思路主要思路就是遍历数组,找到满足条件的子序列,然后比较得到最小的子序列长度返回。关键在于如何降低遍历数组时的时间复杂度。解法暴力解法两层for 循环,不转载 2021-03-25 10:32:03 · 101 阅读 · 0 评论 -
数组第三天:移除数组元素
leetcode编号27:移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并「原地」修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums =转载 2021-03-24 11:34:58 · 125 阅读 · 0 评论 -
数组第二天:二分法
leetcode编号35:搜索插入位置题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0思路考虑插入位置的四种情况:① 目标值在所有元素之前。② 目标值等于数组转载 2021-03-23 16:58:51 · 75 阅读 · 0 评论 -
数组第一天:认识数组
数组定义数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式得到该下标下对应的数据。需要注意的两点:数组下标都是从0开始的。数组内存空间的地址是连续的。正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。例如删除下标为3的元素,需要对下标为3的元素后面的所有元素都要做移动操作,如图所示:数组元素是不能删除的,只能覆盖。...转载 2021-03-23 16:22:49 · 105 阅读 · 0 评论