
数组
数组算法
雪人不见花
坚持原创,杜绝水
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
删除排序数组中的重复项(No.8)
删除排序数组中的重复项题目描述题解 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例: 输入:nums = [1,1,2] 输出:2, nums = [1,2] 解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。 题解 class Solution原创 2021-09-13 20:51:10 · 88 阅读 · 0 评论 -
旋转数组(No.6*)
旋转数组题目描述题解解题历程第一次第二次第三次(极佳)总结 题目描述 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 进阶: (1)尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 (2)你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗? 题解 解题历程 第一次 方法一(55.1MB) class Solution { public void rotate(int[] nums, int k) { int N = nums.len原创 2021-09-12 17:02:45 · 319 阅读 · 0 评论 -
有序数组的平方(No.5)
有序数组的平方题目描述题解解题历程第一次(极佳)代码记录总结 题目描述 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 题解 第一次提交为我的提交,其余的为官方题解,所以就不放代码了嘿嘿。 解题历程 第一次(极佳) 首先将原数组元素平方得到新数组,实际上就是对这一新数组进行排序。一般数组的排序方法很多,但由于正负数平方的特性,可以选择更加合适的排序方法。 第一次采用从左右两端开始遍历,并将其降入到新数组末尾(效果还不错)。 class S原创 2021-09-11 10:09:50 · 269 阅读 · 0 评论 -
移动零(No.7)
题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 题解 思路 使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。 右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。 注意到以下性质: 左指针左边均为非零数; 右指针左边直到左指针处均为零。 因此每次交换,都是将左指针的零与右指针的非零数交换,且非零数的相对原创 2021-09-13 20:31:21 · 96 阅读 · 0 评论