当前位置: 首页 > news >正文

数据结构复习(三)顺序表oj

目录

27. 移除元素

26. 删除有序数组中的重复项

 88. 合并两个有序数组


27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

 【解法一】

class Solution {
public:int removeElement(vector<int>& nums, int val) {while(1){int pos = 0;for(;pos < nums.size(); pos++){if(nums[pos] == val)break;}if(pos == nums.size())break;for(int i = pos; i < nums.size()-1; i++)nums[i] = nums[i+1];nums.pop_back();    // 注意这里的pop_back()}return nums.size();}
};

 【解法二】计数覆盖

class Solution {
public:int removeElement(vector<int>& nums, int val) {int count = 0;for(int i = 0; i < nums.size(); i++){if(nums[i] == val)count++;elsenums[i-count] = nums[i];}for(int i = 0; i < count; i++)nums.pop_back();return nums.size();}
};

26. 删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。

将最终结果插入 nums 的前 k 个位置后返回 k 。

不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

【解法一】left代表左半部分,right代表右半部分

class Solution {
public:int removeDuplicates(vector<int>& nums) {int left = 0;int right = 1;while(right < nums.size()){if(nums[left] == nums[right])right++;elsenums[++left] = nums[right++];}return left+1;}
};

 88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/merge-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int pos = m+n-1;while(m-1 >= 0 && n-1 >= 0){if(nums1[m-1] >= nums2[n-1]){nums1[pos--] = nums1[m-1];m--;}else{nums1[pos--] = nums2[n-1];n--;}}while(n-1>=0){nums1[pos--] = nums2[n-1];n--;}}
};

相关文章:

数据结构复习(三)顺序表oj

目录 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 27. 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外…...

2023.2.10每日一题

每日一题题目描述解题核心解法一&#xff1a;模拟题目描述 题目链接&#xff1a;2553. 分割数组中数字的数位 给你一个正整数数组nums&#xff0c;请你返回一个数组answer&#xff0c;你需要将nums中每个整数进行数位分割后&#xff0c;按照nums中出现的相同顺序放入答案数组…...

Homekit智能家居DIY一智能吸顶灯

买灯要看什么因素 好灯具的灯光可以说是家居的“魔术师”&#xff0c;除了实用的照明功能外&#xff0c;对细节的把控也非常到位。那么该如何选到一款各方面合适的灯呢&#xff1f; 照度 可以简单理解为清晰度&#xff0c;复杂点套公式来说照度光通量&#xff08;亮度&#x…...

关于 OAuth 你又了解哪些?

作者罗锦华&#xff0c;API7.ai 技术专家/技术工程师&#xff0c;开源项目 pgcat&#xff0c;lua-resty-ffi&#xff0c;lua-resty-inspect 的作者。 OAuth 的背景 OAuth&#xff0c;O 是 Open&#xff0c;Auth 是授权&#xff0c;也就是开放授权的意思。OAuth 始于 2006 年&a…...

18. 构造函数和析构函数,构造函数的分类和调用

构造函数和析构函数 构造函数 //没有返回值 不用写void//函数名 与 类名相同//可以有参数 ,可以发生重载//构造函数 由编译器自动调用一次 无须手动调用析构函数 //没有返回值 不用写void函数名 与类名相同 函数名前 加 ~不可以有参数 ,不可以发生重载析构函数 也是由编译器自…...

JavaScript设计模式es6(23种)

设计模式简介设计模式代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的…...

设计「业务」与「技术」方案

三天研发&#xff0c;两天设计&#xff1b; 01【优先做设计方案】 职场中的那些魔幻操作&#xff0c;研发最烦的是哪个&#xff1f; 作为一个数年且资深的互联网普通开发&#xff0c;可以来说明一下为什么是&#xff1a;缺乏设计&#xff1b; 面对业务需求的时候&#xff0c…...

C/C++:预处理(下)

目录 一.回顾程序的编译链接过程 二. 预处理之预定义#define 1.#define定义的标识符 2.#define定义的宏 3.带副作用的表达式作为宏实参 4.两个经典的宏 5.#define使用的一些注意事项小结 6.宏与函数的比较 7.#undef 附&#xff1a;关于#define的三个冷知识 三. 条件…...

2023互联网相关岗位转行与就业选择的简单分析

文章目录1、城市2、岗位1、城市 能找得到工作的城市&#xff0c;可能主要也就这些base了 2、岗位 主要技术岗位 Python 侧重人工智能&#xff0c;人工智能门槛高大家心知肚明。如果学python 不走人工智能&#xff0c;只走单纯的后端开发&#xff0c;不管从薪资还是岗位数量…...

LeetCode·每日一题·1223.掷骰子模拟·记忆化搜索

作者&#xff1a;小迅链接&#xff1a;https://leetcode.cn/problems/dice-roll-simulation/solutions/2103471/ji-yi-hua-sou-suo-zhu-shi-chao-ji-xiang-xlfcs/来源&#xff1a;力扣&#xff08;LeetCode&#xff09;著作权归作者所有。商业转载请联系作者获得授权&#xff0…...

【GPLT 二阶题目集】L2-043 龙龙送外卖

参考地址&#xff1a;AcWing 4474. 龙龙送外卖&#xff08;杂题选讲&#xff09; 作者&#xff1a;yxc 感谢y总&#xff01; 龙龙是“饱了呀”外卖软件的注册骑手&#xff0c;负责送帕特小区的外卖。帕特小区的构造非常特别&#xff0c;都是双向道路且没有构成环 —— 你可以…...

Maven:基础知识

Maven概念图生命周期目录工程创建测试常用命令COMPILATION ERROR : 不再支持目标选项 5。请使用 7 或更高版本。问题解决pom.xml文件properties配置示例scope配置详解概念图 依赖管理构建项目Maven 的底层核心实现项目的构建和管理必须通过插件完成&#xff0c;但插件本身并不包…...

Web 框架 Flask 快速入门(一)flask基础与模板

前言 课程地址&#xff1a;Python Web 框架 Flask 快速入门 文章目录前言&#x1f334; Flask基础和模板&#x1f337; 一个简单的flask程序&#x1f33c; 模板的使用&#x1f334; Flask基础和模板 1、web框架的作用 避免重复造轮子&#xff0c;app程序不必关心于服务器的沟…...

1CN/Jaccard/PA/AA/RA/Katz/PageRank/SimRank

common neighbors&#xff08;CN&#xff09; 公共邻居的数量。 Jaccard 用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大&#xff0c;样本相似度越高。 preferential attachment&#xff08;PA&#xff09; 节点倾向于连接到节点度较高的节点上&#xff0c;&…...

YOLOv5-Backbone模块实现

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章地址&#xff1a; 365天深度学习训练营-第P8周&#xff1a;YOLOv5-Backbone模块实现&#x1f356; 作者&#xff1a;K同学啊一、前期准备1.设置GPUimport torch from torch impor…...

【C语言】程序环境和预处理

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;别人可以拷贝我的模式&#xff0c;但不能拷贝我不断往前的激情 &#x1f6f8;C语言专栏&#xff1a;https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…...

9.关系查询处理和查询优化

其他章节索引 梳理 名词解释 代数优化&#xff1a;是指关系代数表达式的优化&#xff0c;也即按照一定规则&#xff0c;通过对关系代数表达式进行等价变换&#xff0c;改变代数表达式中操作的次序和组合&#xff0c;使查询更高效物理优化&#xff1a;是指存取路径和底层操作算…...

计算机组成原理(三)

5.掌握定点数的表示和应用&#xff08;主要是无符号数和有符号数的表示、机器数的定点表示、数的机器码表示&#xff09;&#xff1b; 定点数&#xff1a;小数点位置固定不变。   定点小数&#xff1a;小数点固定在数值位与符号位之间&#xff1b;   定点整数&#xff1a;小…...

C. Least Prefix Sum codeforces每日一题

&#x1f680;前言 &#x1f680; 大家好啊&#xff0c;这里是幸麟 &#x1f9e9; 一名普通的大学牲&#xff0c;最近在学习算法 &#x1f9e9;每日一题的话难度的话是根据博主水平来找的 &#x1f9e9;所以可能难度比较低&#xff0c;以后会慢慢提高难度的 &#x1f9e9;此题标…...

ASEMI三相整流模块MDS100-16图片,MDS100-16尺寸

编辑-Z ASEMI三相整流模块MDS100-16参数&#xff1a; 型号&#xff1a;MDS100-16 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;1600V 最大RMS电桥输入电压&#xff08;VRMS&#xff09;&#xff1a;1700V 最大平均正向整流输出电流&#xff08;IF&#…...

本地部署YakGPT:打造私有化ChatGPT前端,实现语音交互与数据安全

1. 项目概述&#xff1a;为什么我们需要一个本地运行的ChatGPT UI&#xff1f; 如果你和我一样&#xff0c;已经深度依赖ChatGPT来处理日常工作&#xff0c;从代码调试到文案构思&#xff0c;那你肯定也经历过官方网页端那令人捉急的加载速度&#xff0c;或者在移动端上打字的…...

从苹果三星2016年困境看消费电子行业创新与供应链管理

1. 行业巨头的十字路口&#xff1a;苹果与三星的2016年镜像2016年&#xff0c;对于全球消费电子行业而言&#xff0c;是一个充满微妙转折的年份。站在聚光灯下的两大巨头——苹果与三星&#xff0c;仿佛站在了同一面镜子的两侧&#xff0c;映照出截然不同的困境&#xff0c;却又…...

ARM PB11MPCore USB与DVI接口设计与信号完整性分析

1. ARM PB11MPCore接口架构解析PB11MPCore作为ARM经典的嵌入式开发平台&#xff0c;其外设接口设计体现了工业级嵌入式系统的典型特征。我们先从整体架构入手&#xff0c;理解USB和DVI接口在系统中的位置。1.1 系统级接口布局开发板采用前后面板分离设计&#xff0c;关键接口分…...

基于MCP协议的Burp Suite AI安全测试插件部署与应用实战

1. 项目概述&#xff1a;当Burp Suite遇见MCP&#xff0c;安全测试的“智能副驾”来了如果你是一名Web安全测试工程师或者渗透测试人员&#xff0c;Burp Suite这个名字对你来说&#xff0c;就像木匠手里的锤子一样熟悉。它几乎是手动安全测试的代名词&#xff0c;从拦截代理到漏…...

OpenAI Cookbook中文版:AI应用开发实战指南与工程化实践

1. 项目概述&#xff1a;一份面向中文开发者的AI应用开发“菜谱”最近在GitHub上看到一个挺有意思的项目&#xff0c;叫yunwei37/openai-cookbook-zh-cn。简单来说&#xff0c;这就是OpenAI官方那个大名鼎鼎的openai-cookbook仓库的中文翻译版。但如果你觉得它仅仅是个翻译&…...

手机端数据恢复神器,值得收藏

今天给大家推荐一款好用的安卓端数据恢复工具&#xff0c;非常好用的&#xff0c;还有一款Wifi信号检测工具&#xff0c;有需要的小伙伴及时下载收藏&#xff01; 软件介绍 第一款&#xff1a;数据恢复大师dumpster 提到数据恢复大师&#xff0c;之前好像也有推荐过&#xff0…...

【深度解析】Hermes Agent:持久记忆、自学习闭环与桌面化 Autonomous AI 工作流实践

摘要 Hermes Agent 的核心价值不只是“带工具的聊天机器人”&#xff0c;而是面向长期运行的自主智能体系统。本文从持久记忆、自学习技能、工具编排和桌面化管理角度&#xff0c;解析其架构思想&#xff0c;并给出一个可落地的 Python 实战示例。背景介绍&#xff1a;从 Chatb…...

深度相机绿篱三维重建与修剪轨迹控制方法【附程序】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;紧耦合视觉-惯性-深度里程计与法线引导的稠密重建&am…...

MockGPS虚拟定位终极指南:从零开始快速掌握位置模拟技巧

MockGPS虚拟定位终极指南&#xff1a;从零开始快速掌握位置模拟技巧 【免费下载链接】MockGPS Android application to fake GPS 项目地址: https://gitcode.com/gh_mirrors/mo/MockGPS MockGPS是一款专为Android设备设计的开源虚拟定位应用&#xff0c;能够帮助用户在不…...

31_AI短片实战第四弹:主观视角空间控制与分屏快速剪辑的AI生成策略(附提示词)

文章目录 一、第九镜:前方巨大峡谷——主观视角的空间精确控制 镜头设定 为什么这个镜头很难 迭代修正全记录 主观视角生成黄金法则 二、第十分镜:快速剪辑风格分屏——怪兽逼近与油门踩到底 镜头设定 尝试一次性生成 最终方案:拆分生成,后期合成 什么时候应该“拆开做”?…...