首页 > 其他分享 >面试经典 150 题:力扣88. 合并两个有序数组

面试经典 150 题:力扣88. 合并两个有序数组

时间:2024-09-27 11:50:04浏览次数:10  
标签:150 temporary int pointer2 力扣 pointer1 88 数组 nums1

每周一道算法题启动

题目

【题目链接】

【解法一】合并后排序

排序后的数组自动省略0的数字,又学到了

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        //合并两个数组后排序
        for(int i=0; i<n; i++)
        {
            nums1[m + i] = nums2[i];
        }
        sort(nums1.begin(), nums1.end());
    }
};

【解法二】双指针

时间复杂度:O(m+n)

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        //双指针
        int pointer1=0, pointer2=0;
        int temporary;
        vector<int> num3(m+n); //数组存放
        //防止越界
        while(pointer1 < m || pointer2 < n)
        {
            //第一个数组没数放了,第二个数组还有剩的比第一个数组所有数都要大的
            //特判情况
            if(pointer1 == m) 
            {
                temporary = nums2[pointer2++];
            }
            else if(pointer2 == n)
            {
                temporary = nums1[pointer1++];
            }
        //这里不能等于,要是0的话会放进去,造成不必要麻烦
            else if(nums1[pointer1] > nums2[pointer2])
            {
                temporary = nums2[pointer2++];
            }
            else
            {
                temporary = nums1[pointer1++];
            }
            num3[pointer1 + pointer2 - 1] = temporary;
        }
        //复制数组回去num1
        nums1 = num3;
    }
};

执行用时这个不是程序运行时间嗷!

2535. 数组元素和与数字和的绝对差

【参考代码】 

class Solution {
public:
    int differenceOfSum(vector<int>& nums) {
        int sum1 = 0, sum2 = 0;
        for(int i=0; i<nums.size(); i++)
        {
            sum1 += nums[i];
            int temp = nums[i];
            while(temp)
            {
                sum2 += temp % 10;
                temp /= 10;
            }
        }
        return abs(sum1 - sum2);
    }
};

3分03秒搞定

标签:150,temporary,int,pointer2,力扣,pointer1,88,数组,nums1
From: https://blog.csdn.net/CH3CH2CH4/article/details/142484698

相关文章

  • 电商API数据接口1688alibaba接口item_search_shop-获得店铺的所有商品接入演示
    一、接口功能item_search_shop接口是1688阿里巴巴提供的获取店铺所有商品的API接口,用户可以通过输入店铺ID,获取该店铺的所有商品信息。二、接口调用请求参数:seller_nick=b2b-2200733087881719de&start_price=0&end_price=0&q=&page=1&cid=参数说明:seller_nick:sid或者加密后的_sopi......
  • 题解:P4288 [SHOI2014] 信号增幅仪
    很好一题目,使我的最小圆覆盖旋转。先假设\(p=1\)。这是最简单的情况。这个时候我们就得到了一个裸的最小圆覆盖。当\(p\not=1\),但是\(a=0\)的时候。圆就变成了对称轴与坐标轴平行的椭圆,运用高中知识仿射一下,又回到了最小圆覆盖。在一般的情况下,我们先通过坐标的旋转......
  • (附源码)SSM网上书店系统-计算机毕设 18876
    SSM网上书店系统摘要本研究旨在设计与实现一个基于SSM框架的网上书店系统,以提升书店的线上运营效率和用户购书体验。通过整合SSM框架的优势,系统旨在实现图书信息管理、用户交互、订单处理等功能模块的高效运行。借助SSM框架的灵活性和稳定性,本系统将实现图书分类浏览、......
  • 1688商品详情API在跨境电子商务中的重要性
    一、引言随着全球电子商务的迅速发展和普及,跨境电子商务已经成为国际贸易的一种重要形式。1688作为全球最大的B2B电子商务平台之一,不仅为国内商家提供了丰富的商品资源,同时也为跨境商家提供了广阔的商品信息和交易机会。为了更好地满足跨境商家的需求,1688推出了商品详情API接口,这......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
     springboot高校实验室管理系统摘要随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采springboot技术和mysql数据库来完成对系统的设计。整个开发过......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要随着社会的快速发展和人们生活水平的不断提高,旅游已逐渐成为人们生活的重要组成部分,用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣的信息,个性化旅游......
  • TPS7A39 TPS7A3901DSCR 双路、150mA、宽输入电压正负 LDO 稳压器芯片
    1特性•正负LDO包含在一个封装中•宽输入电压范围:±3.3V至±33V•宽输出电压范围:–正压范围:1.2V至30V–负压范围:–30V至0V•输出电流:每通道150mA•单调启动跟踪•高电源抑制比(PSRR):–69dB(120Hz)–≥50dB(10Hz至2MHz)•输出电压噪声:21µVRMS(......
  • 力扣刷题——2306. 公司命名
    根据题意,很容易就能想到用哈希表来做。先写一个最简单的暴力,完全就是模拟。longlongdistinctNames(vector<string>&ideas){intn=ideas.size();unordered_map<string,int>um;for(inti=0;i<n;i++){um[ideas[i]]=1;}long......
  • 工业 RJ 连接器:DRP10188321011 DRP10188321012 DRP10188400001 DRP10188400002 提供
    工业以太网连接器能够实现以太网和其他工业协议的物联网连接,覆盖了从企业/云到工厂车间中传感器/执行器的所有操作层面。工业RJ系列模块化以太网插头提供符合ANSI/TIA-568.2-D的CAT6A性能。它在长达100m的应用中支持千兆位以太网协议和10G链路。可现场端接的设计便于......
  • django数字化时代的新能源汽车供应链优化与可视化-计算机毕业设计源码91188
    摘要本研究旨在探讨利用Django框架进行新能源汽车供应链优化与可视化的应用。随着数字化时代的到来,新能源汽车产业迅速发展,供应链管理变得至关重要。通过结合Django框架的强大功能,我们可以优化新能源汽车供应链的各个环节,实现供需匹配的精准管理,同时利用可视化技术展示供应链......