移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 双指针 对于要求原地实现移除,我们可以使用双指针的方式实现。 首先我们定义 l、r两个指针,r指针指向当前
题:给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。 一个空字符串也被视为有效字符串。 示例 1: 输入: "()&q
?排序算法-平均时间复杂度 排序算法 平均时间复杂度 稳定性 冒泡排序 $O(n^2)$ 稳定排序 选择排序 $O(n^2)$ 非稳定排序 插入排序 $O(n^2)$ 稳定排序 希尔排序 $O(n^{1.5})$ 非稳定排序 归并排序 $O(n*logN)$ 稳定排序 堆排序 $O(n*logN)$ 非稳定排序 快速排序 $O(n*logN)$ 非稳定排序
轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 借用临时数组 我们可以新建一个临时数组,用于存储旋转后的元素。首先获取数组的长度n,并计算k%n将k值限制在数组nums长度范围内,避免不必要的旋转。创建一个临时数组ans,在第一个循环中,从位置n-k开始,将nums向量中的元素逐个添加到ans向量中。在第二个循环中,从位置 0 开始,将 n
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号