408算法题leetcode--第七天

283. 移动零

  • 283. 移动零
  • 思路:代码中注释阐述
  • 时间:O(n);空间:O(1)
cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        // 简单思路:用一个辅助数组,将非0元素复制到里面
        // 双指针,一个p指向结果数组,一个q指向原数组
        // q找到非0元素,移动到p中
        int p = 0, q = 0;
        int size = nums.size();
        while(q < size){
            if(nums[q] != 0){
                int temp = nums[p];
                nums[p] = nums[q];
                nums[q] = temp;
                ++p;
            }
            ++q;
        }
    }
};

88. 合并两个有序数组

cpp 复制代码
class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        // 逆序双指针:123000 456 > 123006 > 123056 > 123456
        int p = m - 1, q = n - 1;
        int tail = m + n - 1;  // 存放于nums1的最后的位置
        while(p >= 0 && q >= 0){
            if(nums1[p] > nums2[q]){
                nums1[tail--] = nums1[p--];
            } else {
                nums1[tail--] = nums2[q--];
            }
        }
        while(q >= 0){
            nums1[tail--] = nums2[q--];
        }
    }
};
相关推荐
聚客AI19 小时前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v1 天前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工1 天前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农1 天前
【React用到的一些算法】游标和栈
算法·react.js
博笙困了1 天前
AcWing学习——双指针算法
c++·算法
moonlifesudo1 天前
322:零钱兑换(三种方法)
算法
NAGNIP2 天前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队2 天前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja2 天前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法