力扣每日一练(24-1-13)

如果用列表生成式,可以满足输出的型式,但是不满足题意:

python 复制代码
 nums[:] = [i for i in nums if i != val]
        return len(nums)

题意要求是:

你需要原地修改数组,并且只使用O(1)的额外空间。这意味着我们不能创建新的列表,而需要在原始列表上进行操作。

题解:

python 复制代码
left, right = 0, len(nums) - 1
        while left <= right:
            if nums[left] == val:
                nums[left], nums[right] = nums[right], nums[left]
                right -= 1
            else:
                left += 1
        return left

这个解决方案使用了两个指针,一个从左边开始,一个从右边开始。当左边的指针找到一个等于val的元素,而右边的指针找到一个不等于val的元素时,我们就交换这两个元素。这样,我们就可以将所有等于val的元素移到数组的右边。

这个解决方案的优点是,它只需要一次遍历,时间复杂度是O(n),其中n是数组的长度。同时,它只使用了常数级别的额外空间,空间复杂度是O(1)。此外,这个解决方案还考虑到了val在数组中出现的频率。如果val很少出现,那么元素交换的次数就会减少,这可以提高算法的效率。

相关推荐
先做个垃圾出来………39 分钟前
差分数组(Difference Array)
java·数据结构·算法
hansang_IR1 小时前
【题解】洛谷 P4286 [SHOI2008] 安全的航线 [递归分治]
c++·数学·算法·dfs·题解·向量·点积
乐迪信息1 小时前
乐迪信息:AI摄像机在智慧煤矿人员安全与行为识别中的技术应用
大数据·人工智能·算法·安全·视觉检测
多恩Stone2 小时前
【3DV 进阶-2】Hunyuan3D2.1 训练代码详细理解下-数据读取流程
人工智能·python·算法·3d·aigc
dragoooon342 小时前
[数据结构——lesson5.1链表的应用]
数据结构·链表
惯导马工3 小时前
【论文导读】IDOL: Inertial Deep Orientation-Estimation and Localization
深度学习·算法
老姜洛克3 小时前
自然语言处理(NLP)之n-gram从原理到实战
算法·nlp
1白天的黑夜13 小时前
哈希表-49.字母异位词分组-力扣(LeetCode)
c++·leetcode·哈希表
CoovallyAIHub3 小时前
基于YOLO集成模型的无人机多光谱风电部件缺陷检测
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
几十个像素的小目标,为何难倒无人机?LCW-YOLO让无人机小目标检测不再卡顿
深度学习·算法·计算机视觉