![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
开始数组刷题吧!!
唯有一颗慎独心
渴望力量使我成为琦玉
展开
-
数组专栏之螺旋数组
题目:给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。解析:这道题主要就是考察模拟的能力。模拟顺时针遍历数组矩阵的过程。分为四步:模拟上侧从左到右模拟右侧从上到下模拟下侧从右到左模拟左侧从下到上在模拟过程中,要遵循左闭右开的原则,仔细考虑每一处的边界条件。代码:class Solution { public int[][] generateMatrix(int n) {原创 2021-05-25 12:04:18 · 257 阅读 · 0 评论 -
数组专栏之长度最小的子数组
题目给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。解析可以直接暴力解法,就是两个for循环,时间复杂度为O(n^2) 。代码如下:class Solution { public int minSubArrayLen(int target, int[] nums) {原创 2021-05-18 17:28:23 · 110 阅读 · 0 评论 -
算法之移除元素
题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解析:当 nums[i] 与给定的值相等时,递增 i 以跳过该元素。只要 nums[i] != val,我们就复制 nums[i] 到 nums[j],并同时递增两个索引。重复这一过程,直到i到达数组的末尾,该数组的新长度为 j. pu原创 2021-01-29 16:17:30 · 145 阅读 · 0 评论 -
数组专栏之二分查找
题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。解析:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。我们可以定义 target 是在一个在左闭右闭的区间里,也就是 [left, right](原创 2021-05-18 15:10:29 · 79 阅读 · 0 评论