NC22 合并两个有序的数组:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:69590 本题知识点: 数组 双指针

本文介绍了一种高效的数组合并方法,该方法无需额外空间,通过从后向前遍历两个已排序数组并将较大元素放置于第一个数组的末尾来实现。此方法适用于需要合并两个有序整数数组的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
题解:从后往前可以不用申请额外空间

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int len=m+n;
        int tail1=m-1,tail2=n-1;
        int cur=len-1;
        
        while(tail1>=0&&tail2>=0){
            if(A[tail1]>B[tail2]){
                A[cur]=A[tail1];
                tail1--;     
            }
            else {
                A[cur]=B[tail2];
                tail2--;
            }
            cur--;     
        }   
        while(tail1>=0){
             A[cur]=A[tail1];
                tail1--;   
                cur--;
        }
         while(tail2>=0){
             A[cur]=B[tail2];
                tail2--;  
                cur--;
        }        
    }
};
``` PLL #( .VCOFREQUENCY(4800), .DELAY_LINE_SIMULATION_MODE(""), .DATA_RATE(0.0) , .FORMAL_NAME(""), .INTERFACE_NAME(""), .INTERFACE_LEVEL(3'b0) , .SOFTRESET(1'b0), .SOFT_POWERDOWN_N(1'b1), .RFDIV_EN(1'b1), .OUT0_DIV_EN(1'b1) , .OUT1_DIV_EN(1'b1), .OUT2_DIV_EN(1'b1), .OUT3_DIV_EN(1'b1), .SOFT_REF_CLK_SEL(1'b0) , .RESET_ON_LOCK(1'b1), .BYPASS_CLK_SEL(4'b0), .BYPASS_GO_EN_N(1'b1) , .BYPASS_PLL(4'b0), .BYPASS_OUT_DIVIDER(4'b0), .FF_REQUIRES_LOCK(1'b0) , .FSE_N(1'b0), .FB_CLK_SEL_0(2'b00), .FB_CLK_SEL_1(1'b0), .RFDIV(6'b000001) , .FRAC_EN(1'b0), .FRAC_DAC_EN(1'b0), .DIV0_RST_DELAY(3'b000) , .DIV0_VAL(7'b1111000), .DIV1_RST_DELAY(3'b000), .DIV1_VAL(7'b0111100) , .DIV2_RST_DELAY(3'b000), .DIV2_VAL(7'b0011110), .DIV3_RST_DELAY(3'b000) , .DIV3_VAL(7'b0011000), .DIV3_CLK_SEL(1'b0), .BW_INT_CTRL(2'b0) , .BW_PROP_CTRL(2'b01), .IREF_EN(1'b1), .IREF_TOGGLE(1'b0), .LOCK_CNT(4'b1000) , .DESKEW_CAL_CNT(3'b110), .DESKEW_CAL_EN(1'b1), .DESKEW_CAL_BYPASS(1'b0) , .SYNC_REF_DIV_EN(1'b0), .SYNC_REF_DIV_EN_2(1'b0), .OUT0_PHASE_SEL(3'b000) , .OUT1_PHASE_SEL(3'b000), .OUT2_PHASE_SEL(3'b000), .OUT3_PHASE_SEL(3'b000) , .SOFT_LOAD_PHASE_N(1'b1), .SSM_DIV_VAL(6'b1), .FB_FRAC_VAL(24'b0) , .SSM_SPREAD_MODE(1'b0), .SSM_MODULATION(5'b00101), .FB_INT_VAL(12'b000001100000) , .SSM_EN_N(1'b1), .SSM_EXT_WAVE_EN(2'b0), .SSM_EXT_WAVE_MAX_ADDR(8'b0) , .SSM_RANDOM_EN(1'b0), .SSM_RANDOM_PATTERN_SEL(3'b0), .CDMUX0_SEL(2'b0) , .CDMUX1_SEL(1'b1), .CDMUX2_SEL(1'b0), .CDELAY0_SEL(8'b0), .CDELAY0_EN(1'b0) , .DRI_EN(1'b1) ) pll_inst_0 (.LOCK(PLL_LOCK_0), .SSCG_WAVE_TABLE_ADDR({nc0, nc1, nc2, nc3, nc4, nc5, nc6, nc7}), .DELAY_LINE_OUT_OF_RANGE(), .POWERDOWN_N(PLL_POWERDOWN_N_0), .OUT0_EN(vcc_net), .OUT1_EN(vcc_net), .OUT2_EN(vcc_net), .OUT3_EN(vcc_net), .REF_CLK_SEL(gnd_net), .BYPASS_EN_N(vcc_net) , .LOAD_PHASE_N(vcc_net), .SSCG_WAVE_TABLE({gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net}), .PHASE_DIRECTION(gnd_net), .PHASE_ROTATE(gnd_net), .PHASE_OUT0_SEL(gnd_net), .PHASE_OUT1_SEL(gnd_net), .PHASE_OUT2_SEL(gnd_net), .PHASE_OUT3_SEL(gnd_net), .DELAY_LINE_MOVE(gnd_net), .DELAY_LINE_DIRECTION(gnd_net), .DELAY_LINE_WIDE(gnd_net), .DELAY_LINE_LOAD(vcc_net), .REFCLK_SYNC_EN(gnd_net), .REF_CLK_0(REF_CLK_0), .REF_CLK_1( gnd_net), .FB_CLK(gnd_net), .OUT0(pll_inst_0_clkint_0), .OUT1( pll_inst_0_clkint_4), .OUT2(pll_inst_0_clkint_8), .OUT3( pll_inst_0_clkint_12), .DRI_CLK(gnd_net), .DRI_CTRL({gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net}), .DRI_WDATA({gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net, gnd_net}), .DRI_ARST_N(vcc_net), .DRI_RDATA({ nc8, nc9, nc10, nc11, nc12, nc13, nc14, nc15, nc16, nc17, nc18, nc19, nc20, nc21, nc22, nc23, nc24, nc25, nc26, nc27, nc28, nc29, nc30, nc31, nc32, nc33, nc34, nc35, nc36, nc37, nc38, nc39, nc40}), .DRI_INTERRUPT()); //CLKINT clkint_12 (.A(pll_inst_0_clkint_12), .Y(OUT3_FABCLK_0)); BUFGCE bufgce_12 (.I(pll_inst_0_clkint_12 ),.CE(1),.O(OUT2_FABCLK_0)) ; //VCC vcc_inst (.Y(vcc_net)); //GND gnd_inst (.Y(gnd_net)); assign vcc_net = 1'b1 ; assign gnd_net = 1'b0 ; //CLKINT clkint_4 (.A(pll_inst_0_clkint_4), .Y(OUT1_FABCLK_0)); BUFGCE bufgce_4 (.I(pll_inst_0_clkint_4 ),.CE(1),.O(OUT2_FABCLK_0)) ;```这段代码中信息如果用vivado如何使用IP去取代
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值