/** * @brief 给定一个数组nums,将所有的0移动到数组的末尾,同时保留非0元素的相对顺序; * @param nums */ void moveZeros(vector<int>& nums){ int i = 0,poz ...
题目: 移动零:给定一个数组 nums,编写一个函数将所有 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路: 思路较简单。 程序: class Solution: def moveZeroes self, nums: List int gt None: Do not return anything, modify ...
2020-05-27 13:03 0 1092 推荐指数:
/** * @brief 给定一个数组nums,将所有的0移动到数组的末尾,同时保留非0元素的相对顺序; * @param nums */ void moveZeros(vector<int>& nums){ int i = 0,poz ...
题目: 滑动窗口最大值:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 示例: 输入: nums ...
题目: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的 原地 算法。 思路: 本题思路简单 ...
题目: 两个数组的交集:给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明 ...
题目: 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 说明 ...
题目: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 思路: 是第54题的逆向过程 程序: class Solution ...
题目: 区域和检索 - 数组不可变:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange ...
题目: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 思路: 进阶: 一个直接的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间 ...