数据结构(2)顺序表算法题

一、移除元素

1、题目描述

 

2、算法分析 

思路1:查找val值对应的下标pos,执行删除pos位置数据的操作。

        该方法时间复杂度为O(n^2),因此不建议使用。

思路2:创建新数组(空间大小与原数组一致),遍历原数组,将非val值放到tmp数组中,再将tmp数组拷贝回原数组。

        该方法时间复杂度O(N),空间复杂度O(N)。体现了用空间换时间的思想。

思路3:双指针法

        创建两个变量dst 和 src,(1)nums[src] == val,src++   

(2)nums[src] != val,赋值(src给dst),dst++,src++

3、参考代码

int removeElement(int* nums, int numsSize, int val) 
{//定义两个变量int dst = 0, src = 0;while(src < numsSize){//src值和val比较if(nums[src] != val){nums[dst] = nums[src];dst++;}src++;}return dst;
}

二、删除有序数组中的重复项

1、题目描述

2、算法分析 

思路:双指针法

        创建两个变量,分别指向起始位置和下一个位置。

(1)nums[src] == nums[dst],src++

(2)nums[src] != nums[dst],dst++,赋值(src给dst),src++

3、参考代码

int removeDuplicates(int* nums, int numsSize) 
{int dst = 0, src = dst + 1;while(src < numsSize){if(nums[src] != nums[dst]){dst++;nums[dst] = nums[src];}src++;} return dst + 1;
}

三、合并两个有序数组

1、题目描述

2、算法分析 

思路1:先合并,再排序

        冒泡排序:O(N^2)       qsort:O(NlogN)

思路2:空间换时间

        创建新数组tmp,空间大小和nums1一致,遍历两个原数组的数据并比较大小,放到tmp中。

思路3:从后往前比较大小,找大的

        注意:不能从前往后比较大小找小的,因为小的往前放会导致数据被覆盖!

 

 3、参考代码

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){//比较大小,找大if(nums1[l1] < nums2[l2]){nums1[l3] = nums2[l2];l2--;l3--;}else{nums1[l3] = nums1[l1];l1--;l3--;}}//要么l1先越界,要么l2先越界while(l2 >= 0){nums1[l3] = nums2[l2];l3--;l2--;}
}

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

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

相关文章

汽车电子架构

本文试图从Analog Devices官网中的汽车解决方案视角带读者构建起汽车电子的总体架构图&#xff0c;为国内热爱和从事汽车电子行业的伙伴们贡献一份力量。 一 、汽车电子架构总览 整个汽车电子包括四个部分&#xff1a;车身电子&#xff08;Body Electronics&#xff09;、座舱与…

pycharm 2025 专业版下载安装教程【附安装包】

安装之前&#xff0c;请确保已经关闭所有安全软件&#xff08;如杀毒软件、防火墙等&#xff09;安装包 &#x1f447;链接&#xff1a;https://pan.xunlei.com/s/VOU-5_L1KOH5j3zDaaCh-Z28A1# 提取码&#xff1a;6bjy下载 PyCharm2025专业版 安装包 并 进行解压运行 pycharm-2…

在 Java 世界里让对象“旅行”:序列化与反序列化

Java 生态里关于 JSON 的序列化与反序列化&#xff08;以下简称“序列化”&#xff09;是一个久经考验的话题&#xff0c;却常因框架繁多、配置琐碎而让初学者望而却步。本文将围绕一段极简的 JsonUtils 工具类展开&#xff0c;以 FastJSON 与 Jackson 两大主流实现为例&#x…

High Speed SelectIO Wizard ip使用记录

本次实验的目的是通过VU9P开发板的6个TG接口&#xff0c;采用固定连接的方式&#xff0c;即X和X-维度互联&#xff0c;其框图如下所示&#xff1a;IP参数配置通过调用High Speed SelectIO Wizard来实现数据通路&#xff0c;High Speed SelectIO Wizard ip有24对数据通道&#x…

Execel文档批量替换标签实现方案

问题背景需求&#xff1a;俺现网班级作为维度&#xff0c;批量导出每个班级学员的数据&#xff0c;excel的个数在1k左右&#xff0c;每一张表的人数在90左右。导出总耗时在10小时左右。代码编写完成并导出现网数据后&#xff0c;发现导出的标题错了。解决方案1.通过修改代码&am…

SpringBoot配置多数据源多数据库

Springboot支持配置多数据源。默认情况&#xff0c;在yml文件中只会配置一个数据库。如果涉及到操作多个数据库的情况&#xff0c;在同实例中&#xff08;即同一个ip地址下的不同数据库&#xff09;&#xff0c;可以采用数据库名点数据库表的方式&#xff0c;实现跨库表的操作。…

Rocky9.4部署Zabbix7

一、配置安装源 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm ​ yum clean all 二、安装Zabbix server&#xff0c;Web前端&#xff0c;agent yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf z…

【Java】对象类型转换(ClassCastException)异常:从底层原理到架构级防御,老司机的实战经验

在开发中&#xff0c;ClassCastException&#xff08;类转换异常&#xff09;就像一颗隐藏的定时炸弹&#xff0c;常常在代码运行到类型转换逻辑时突然爆发。线上排查问题时&#xff0c;这类异常往往因为类型关系复杂而难以定位。多数开发者习惯于在转换前加个instanceof判断就…

探路者:用 AI 面试加速人才集结,为户外爱好者带来更专业的服务

作为深耕户外用品领域的知名品牌&#xff0c;探路者已构建起覆盖全国的销售服务网络&#xff0c;上千品种的产品矩阵更是为品牌在市场中站稳脚跟提供了有力支撑。对探路者来说&#xff0c;要持续为户外爱好者带来专业且贴心的体验&#xff0c;专业人才是核心支撑。然而&#xf…

LeetCode——面试题 05.01 插入

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff1a;一共会给四个数&#xff0c;分别是N、M、i、j&#xff0c;然后希望我们把N和M抓怒换为2进制以后&#xff0c;将M的二进制放在i到j之间的区域&#xff0c;如果M的二进制长度小于i-j1&#xff0c;则前面补0即可。最…

前端设计中如何在鼠标悬浮时同步修改块内样式

虽然只是一个小问题&#xff0c;但这个解决问题的过程也深化了自己对盒子模型的理解问题缘起正在写一个登录注册的小窗口&#xff0c;想要在鼠标悬浮阶段让按钮和文字都变色&#xff0c;但是发现实操的时候按钮和文字没办法同时变色鼠标悬停前鼠标悬停后问题分析仔细分析了下该…

航空发动机高速旋转件的非接触式信号传输系统

航空发动机是飞机动力系统的核心&#xff0c;各种关键部件如涡轮、压气机等&#xff0c;经常处于极端高温、高速旋转的工作环境中。航空发动机内的传感器数据&#xff0c;如何能够稳定可靠的通过无线的方式传输到检测太&#xff0c;一直是业内的一个难点和痛点。在这个领域&…

【postgresql按照逗号分割字段,并统计数量和求和】

postgresql按照逗号分割字段&#xff0c;并统计数量和求和postgresql按照逗号分割字段&#xff0c;并统计数量和求和postgresql按照逗号分割字段&#xff0c;并统计数量和求和 SELECT ucd, p ,tm, step, unitcd, tm_end from resource_calc_scene_rain_bound_value_plus whe…

「iOS」————继承链与对象的结构

iOS学习前言对象的底层结构isa的类型isa_tobjc_class & objc_object类信息的静态与动态存储&#xff08;ro、rw、rwe机制&#xff09;cachebits继承链isKindOfClass和isMemberOfClassisKindOfClass:isMemberofClass前言 对 对象底层结构的相关信息有点遗忘&#xff0c;简略…

代码随想录day46dp13

647. 回文子串 题目链接 文章讲解 回溯法 class Solution { public:int count 0;// 检查字符串是否是回文bool isPalindrome(string& s, int start, int end) {while (start < end) {if (s[start] ! s[end]) return false;start;end--;}return true;}// 回溯法&#…

学习随笔录

#61 学习随笔录 今日的思考 &#xff1a; 反思一下学习效率低下 不自律 或者 惰性思维 懒得思考 又或者 好高婺远 顶级自律从不靠任何意志力&#xff0c;而在于「平静如水的野心」_哔哩哔哩_bilibili 然后上面是心灵鸡汤合集 vlog #79&#xff5c;程序员远程办公的一天…

python-函数进阶、容器通用方法、字符串比大小(笔记)

python数据容器的通用方法#记住排序后容器类型会变成list容器列表 list[1,3,5,4,6,7] newListsorted(list,reverseTrue) print(newList) [7, 6, 5, 4, 3, 1]list[1,3,5,4,6,7] newListsorted(list,reverseFalse) print(newList) [1, 3, 4, 5, 6, 7]字典排序的是字典的key字符串…

关闭chrome自带的跨域限制,简化本地开发

在开发时为了图方便,简化本地开发,懒得去后端配置允许跨域,那就可以用此方法1. 右键桌面上的Chrome浏览器图标&#xff0c;选择“创建快捷方式”到桌面。2. 在新创建的快捷方式的图标上右键&#xff0c;选择“属性”。3. 在弹出窗口中的“目标”栏中追加&#xff1a; --allow-r…

C++___快速入门(上)

第一个C程序#include<iostream> using namespace std; int main() {cout << "hello world !" << endl;return 0; }上边的代码就是用来打印字符串 “hello world !” 的&#xff0c;可见&#xff0c;与C语言还是有很大的差别的&#xff0c;接下来我…

构建企业级Docker日志驱动:将容器日志无缝发送到腾讯云CLS

源码地址:https://github.com/k8scat/docker-log-driver-tencent-cls 在现代云原生架构中,容器化应用已经成为主流部署方式。随着容器数量的快速增长,如何高效地收集、存储和分析容器日志成为了一个关键挑战。传统的日志收集方式往往存在以下问题: 日志分散在各个容器中,难…