【数据结构篇顺序表】算法题

news2024/9/20 20:50:46

1. 移除元素​
https://leetcode.cn/problems/remove-element/description/​sorted-array/description/​

1.思路

这个题要删除数组中等于 val的元素,然后返回数组中剩余的元素个数

那么肯定是要用到循环的,先给两个指针 l1,l2,开始时l1和l2都先指向下标为0的地方,然后用l2处的值和val进行比较:相等就++,准备找下一个不是val的进行覆盖,如果不等那就把不等于val的进行覆盖,然后l1,l2一起++。最后跳出循环的时候返回''l1''.

2.解析

int removeElement(int* nums, int numsSize, int val) 
{
    int l1=0,l2=0;
    while(l1<numsSize && l2<numsSize)
    {
        if(val==nums[l2])//相等就++,准备找下一个不是val的进行覆盖
        {
            l2++;
        }
        else//把不等于val的进行覆盖,然后l1,l2一起++
        {
            nums[l1++]=nums[l2++];
        }
    }
    return l1;
}

2. 删除有序数组中的重复项​
https://leetcode.cn/problems/remove-duplicates-from-

1.思路

这个题给了一个有序递增的数组,让删除其中的重复项

用循环,先给两个两针 l1,l2,l1指向下标为0的地方,l2指向l1的下一个地方然后比较l1,l2中的数是否相等,如果相等l2++,如果不等l1先++(++l1)然后把l2的赋给l1,最后l2在++,

直到循环结束,返回 l1+1

2.解析

int removeDuplicates(int* nums, int numsSize) {
    int l1=0,l2=l1+1;
    while(l2<numsSize)
    {
        if(nums[l1]==nums[l2])
        {
            l2++;//如果相等l2++
        }
        else//如果不等l1先++(++l1)然后把l2的赋给l1,最后l2在++
        {         
            nums[++l1]=nums[l2++];
        }
    }
    return l1+1;  
}

3. 合并两个有序数组​
https://leetcode.cn/problems/merge-sorted-array/description/​

1.思路

这个题给了两个递增数组,一个容量是两个数组有效数据数据个数之和,另一个容量为它本身的有效数据个数,用循环,给三个指针l1,l2,l3,第一个指向一个数组最后一个有效元素,第二指向第二个数组的最后一个元素,第三个指针指向那个长数组的最后一个位置

把l1,l2处的元素进行比较,较大的放到l3处然后l3和那个指针都进行--

出循环后,如果是第二个数组先轮完那第一个数组中剩下的都是有序的不用排了

 如果是第一个数组先轮完,那就要把第二个数组剩下的元素放到第一个数组中

2.解析

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) 
{
    int l1=m-1;
    int l2=n-1;
    int l3=m+n-1;
    while(l1>=0 && l2>=0)
    {
        //把l1,l2处的元素进行比较,较大的放到l3处然后l3和那个指针都进行--
        if(nums1[l1]>nums2[l2])
        {
            nums1[l3--]=nums1[l1--];
        }
        else
        {
             nums1[l3--]=nums2[l2--];
        }
    }
    //出循环后,如果是第二个数组先轮完那第一个数组中剩下的都是有序的不用排了
    //如果是第一个数组先轮完,那就要把第二个数组剩下的元素放到第一个数组中
    while(l2>=0)
    {
        nums1[l3--] =nums2[l2--];
    }   
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学网安兴趣最重要

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

Matplotlib-绘图基础

文章目录 一、安装Matplotlib二、基本绘图流程1.创建画布与创建子图2.基本绘图1&#xff09;.绘制线条2).设置线型、线宽格式化字符颜色的缩写 3).设置坐标轴范围4).设置坐标刻度5).设置坐标轴6&#xff09;备注 三、高级绘图1&#xff09;plt对象支持的图类型2&#xff09;散点…

【Linux】——进程概念(万字解读)

一 冯诺依曼体系结构 在此之前&#xff0c;我们先要理解我们计算机的冯诺依曼体系结构&#xff0c;因为是进程的基础 我们所有的操作其实都是基于这样一个模型&#xff0c;比如你在qq上&#xff0c;和别人发送消息&#xff0c;这个消息肯定是先通过输入设备进行输入&#xf…

Vue3学习 Day03

标签的ref属性 用ref标记dom元素 取代了用id来标识标签&#xff0c;因为用id来标识标签&#xff0c;如果父组件和子组件中有id一样的&#xff0c;会引起混淆。 用ref标记组件 子组件 向父亲暴露name&#xff0c;age&#xff0c;classroom&#xff08;非响应式&#xff09; …

make/Makefile -基本使用

文章目录 一、make/Makefile 的认识makeMakefile 二、make/Makefile 基本使用创建项目清理项目make 指令的使用 三、makefile 的几个语法关键字 PHONY :$ :变量 : 四、makefile的语法推导过程 一、make/Makefile 的认识 我们一般使用 Visual Studio&#xff08;下面简称 VS&am…

【秋招笔试题】米小游的植树工

解法&#xff1a;若区间覆盖的最小值大于等于2&#xff0c;则有他没他没影响&#xff0c;反之则不能算。所以一开始差分数组预处理区间加&#xff0c;然后ST表查最小值即可。 package com.sky;import java.util.Scanner; import java.util.Arrays;public class Test1 {static …

代码随想录——合并区间(Leetcode hot14)

题目链接 思路&#xff1a; 合并区间分为两种情况&#xff1a; 前一个数组右边界 > 后一个数组左边界 eg:[1,3],[2,6] > 合并为[1,6]前一个数组右边界 > 后一个数组右边界 eg:[1,6],[2,4] > 合并为[1,6] class Solution {public int[][] merge(int[][] intervals)…

XSS小游戏(题目+解析)DOM破坏!!!

文章目录 一、Ma Spaghet!二、Jefff三、Ugandan Knuckles四、Ricardo Milos五、Ah Thats Hawt六、Ligma七、Mafia方法一&#xff1a;可以用匿名函数来试试方法二&#xff1a;利用toString方法方法三&#xff1a;利用location和hash切片slice 八、Ok, Boomer九、svg十、DOM破坏十…

【Qt】QWidget的focusPolicy属性

QWidget的focusPolicy属性 设置控件获取到焦点的策略。 所谓“焦点”&#xff0c;就是能选中这个元素。 计算机中的“焦点”&#xff0c;对于键盘操作非常明显。 例如&#xff1a;界面上有一个输入框&#xff0c;此时必须要选中这个输入框&#xff0c;接下来键盘按键才会输入到…

数学建模预测类—【非线性回归】

每日格言&#xff1a;赞美那已经失去的&#xff0c;好让回忆变得可爱 前言 本篇我们将会从一般非线性回归求解和多项式回归求解两个方面来具体介绍如何进行建模求解 一、一般非线性回归求解 1、配曲线求解 适用条件&#xff1a;六类基本曲线&#xff1a;倒指数函数曲线&#…

解决docker一直出现“=> ERROR [internal] load metadata for docker.io/library/xxx“的问题

思考了一下&#xff0c;应该是权限的问题&#xff0c;尝试使用密码登录docker&#xff0c;发现还是不行&#xff0c;因为我是在windows搭建了docker hub&#xff0c;所以可能是需要登录才可以下载&#xff0c;其实就是去生成一个令牌&#xff0c;然后登录即可。 登录即可&#…

单调栈《数组模拟》

#include <iostream>using namespace std;const int N 100010;int m; int stk[N], tt;int main() {cin >> m;while (m -- ){string op;int x;cin >> op;if (op "push"){cin >> x;stk[ tt] x;//插入x}else if (op "pop") tt -…

Tmagic-editor低代码底层拖拽库Moveable示例学习

在前面咱们的自研低代码海报制作平台学习分享计划中分享了自己开发的基本拖拽组件&#xff0c;也只是做了最简单的基本实现。真要写产品&#xff0c;更多还是依赖相关的开源优秀库。 文章目录 参考基本拖拽基本缩放基本Scalable基本旋转基于原点的拖拽和旋转关于练习源码 参考 …

谐振功率放大器的基本原理

1LC谐振电路 谐振又称“共振”。振荡系统在周期性外力作用下&#xff0c;当外力作用频率与系统固有振荡频率相同或很接近时&#xff0c;振幅急剧增大的现象。产生谐振时的频率称“谐振频率”。 电工技术中&#xff0c;振荡电路的共振现象&#xff1a; 1&#xff09;电感与电…

刀客doc:这一届奥运营销,伊利和蒙牛谁更滑头?

文 | 刀客Doc 伊利和蒙牛谁赢了&#xff1f; 聊一聊奥运营销&#xff0c;交个朋友加V&#xff1a;efangfeng 今年巴黎奥运营销&#xff0c;我看大家讨论比较多的就是蒙牛和伊利的暗战。 其中有一种声音认为&#xff0c;伊利这次又再一次成功伏击蒙牛。这个观点确实满足了不少…

SAR靶机笔记

SAR 靶机笔记 概述 SAR 是 Vulnhub 上的靶机&#xff0c;大家可以去 vulnhub 网站上去进行下载。 这里有链接&#xff1a; https://download.vulnhub.com/sar/sar.zip 一丶常规的 nmap 扫描 1&#xff09;主机发现 sn 只做 ping 扫描&#xff0c;不做端口扫描 nmap -sn …

回顾加密风险投资15年演变:步履维艰,但总体向上

1. 引言&#xff1a;加密风险投资的历程 过去15年&#xff0c;加密领域经历了从默默无闻到引爆全球金融市场的巨大变迁。风投机构&#xff08;VC&#xff09;在这一过程中扮演了重要角色&#xff0c;推动了区块链和加密货币行业的快速发展。本文将探讨加密风险投资的动态演变&…

转录组8种免疫浸润分析方法整理

探索疾病的免疫微环境是当下研究的热点&#xff0c;因此这也要求我们对免疫浸润分析的各种工具要有所了解&#xff0c;这些工具包括: CIBERSORT&#xff0c;quanTIseq&#xff0c;EPIC (这三种方法可得到不同细胞亚群的百分比结果/绝对丰度), xCell&#xff0c;TIMER&#xff0…

接口基础知识10:详解接口文档

课程大纲 一、接口文档简介 描述系统接口信息的文档&#xff0c;通常由‌后端开发人员编写&#xff0c;用于规定接口的规范&#xff0c;详细说明接口的逻辑和作用、如何调用接口。 接口文档包含的内容&#xff1a; 接口的逻辑和作用&#xff1a;简要描述接口的功能和用途。 …

JavaFX对话框控件-Dialog

JavaFX对话框控件-Dialog 常用属性titleinitOwnerdialogPaneresultConverter 实现方式 与Alert大部分功能类似可以自定义弹出框内容&#xff0c;比较灵活与DialogPane布局配合使用&#xff0c;自定义具体内容 参考DialogPane 常用属性 title 弹出框标题&#xff0c;标题太长…