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

与数组相关经典面试题

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk

      ⸝⋆   ━━━┓
     - 个性标签 - :来于“云”的“羽球人”。 Talk is cheap. Show me the code
┗━━━━━━━  ➴ ⷯ

本人座右铭 :   欲达高峰,必忍其痛;欲戴王冠,必承其重。

👑💎💎👑💎💎👑 
💎💎💎自💎💎💎
💎💎💎信💎💎💎
👑💎💎 💎💎👑    希望在看完我的此篇博客后可以对你有帮助哟

👑👑💎💎💎👑👑   此外,希望各位大佬们在看完后,可以互赞互关一下,看到必回
👑👑👑💎👑👑👑


一:原地移除指定的元素值

题目:

思路讲解:

我们以此数组为例:

1:首先定义2个变量 n1,n2都分别指向第一个元素(注意n2的初始值必须指向首元素)

2:当 nums[n2] == val 向后移动n2一步

3:nums[n2] != val   则执行 nums[n1++] = nums[n2++] 也就是 n2对应指向的元素赋值给 n1

草图见下:

OJ代码实现
int removeElement(int* nums, int numsSize, int val){//  int fast = 1,slow = 0; 注意这里fast必须初始值是0(可能存在第一个元素就为val)int n1 = 0,n2 = 0;while(fast<numsSize){if(nums[n2] == val){n2++;}else{nums[n1++] = nums[n2++];}}
return n1;}

二:删除排序数组重复项

题目:

思路讲解:

这里我们一人是双指针的玩法:

1:定义2个指针n1 = 0,n2 = 1  注意n1,n2只表示下标的含义

2:nums[n1] == nums[n2] ,此时n2++

直到 nums[n1] != nums[n2] 执行 nums[++n1] = nums[n2++]注意到底是先加加还是先用数值

草图见下:

 

OJ代码实现
int removeDuplicates(int* nums, int numsSize){int n1 = 0,n2 = 1;while(n2 < numsSize){if( nums[n1] == nums[n2]){n2++;}else{nums[++n1] = nums[n2++];}}return n1+1;
}

三: 合并2个有序数组

题目:
思路讲解:

这里我们用三指针的玩法是最优解

1:定义三个变量 l:返回新数组的大小;l1:数组1的大小;l2:数组2的大小

2:借助尾插的思想,比较2个数组元素谁大,取大的进行尾插到数组1的末尾,依次循环

3:注意第一个循环判断条件必须是 逻辑且(不能是逻辑或):因为当有一个数组已经走完的时候剩下 的那个未走完的数组直接进行赋值拷贝即可

4:若是第2个数组先走完的,那么此时已经完成了数组的合并

5:若是第1个数组先走完的下面还需要对数组2 余下的内容进行赋值拷贝

草图见下:

 

OJ代码实现
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){/*借助尾插思想:从目标数组的最后一个位置开始进行:取2个数组中较大的元素尾插*/int l= m+n-1,l1 = m-1,l2 = n-1;while(l1 >= 0 && l2 >= 0){if(nums1[l1] >= nums2[l2]){nums1[l--] = nums1[l1--];}else{nums1[l--] = nums2[l2--];}}if(l1 < 0){while(l2>= 0) {nums1[l--] = nums2[l2--];  }}}

结语:

以上就是今日为大家share 的内容。其实仔细看一下,发现这些题目还是有相似之处的。但是但是:做题的思路又有些出入,这时我们不妨静下心来好好复盘一下,看看是否有可以继续深挖的地方。

ok,接下来咱走起来,老铁你懂滴!

相关文章:

与数组相关经典面试题

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…...

数据结构与算法面试系列-02

1. 一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上168后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 程序代码如下: package com.yoodb.uti…...

CMake 完整入门教程(五)

CMake 使用实例 13.1 例子一 一个经典的 C 程序&#xff0c;如何用 cmake 来进行构建程序呢&#xff1f; //main.c #include <stdio.h> int main() { printf("Hello World!/n"); return 0; } 编写一个 CMakeList.txt 文件 ( 可看做 cmake 的…...

pgsql中with子句和直接查询差别

1、代码的可读性和维护性&#xff1a; 当查询较为复杂时&#xff0c;WITH子句可以将复杂的查询分解成多个简单的步骤&#xff0c;每个步骤都可以有一个易于理解的名字。这样做提高了代码的可读性&#xff0c;也便于后期维护。 2、代码的重用性&#xff1a; 在WITH子句中定义…...

Day 31 | 贪心算法 理论基础 、455.分发饼干 、 376. 摆动序列 、 53. 最大子序和

理论基础 文章讲解 455.分发饼干 题目 文章讲解 视频讲解 思路&#xff1a;从小饼干开始喂小胃口 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int start 0;int count 0;for (int i 0; i < s.length &&a…...

vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.

vue3使用is动态切换组件&#xff0c;activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…...

React16源码: React中LegacyContext的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了&#xff0c;就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢&#xff1f;因为它…...

Gin 框架之jwt 介绍与基本使用

文章目录 一.JWT 介绍二.JWT认证与session认证的区别2.1 基于session认证流程图2.2 基于jwt认证流程图 三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明3.2.4 定义一个payload 3.3 signatrue : …...

从[redis:LinkedList]中学习链表

文章目录 adlistlistNodelistmacros[宏定义]listCreatelistInitNodelistEmptylistReleaselistAddNodeHeadlistLinkNodeHeadlistAddNodeTaillistLinkNodeTaillistInsertNodelistDelNodelistUlinkNodelistIndexredis3.2.100quicklistredis7.2.2quicklist redis的基本数据类型之一…...

Prometheus+grafana配置监控系统

使用docker compose安装 方便拓展, 配置信息都放在在 /docker/prometheus 目录下 1.目录结构如下 . ├── conf │ └── prometheus.yml ├── grafana_data ├── prometheus_data └── prometheus_grafana.yaml2.创建目录文件 mkdir /docker/prometheus &&am…...

Linux之安装配置CentOS 7

一、CentOS简介 CentOS&#xff08;Community Enterprise Operating System&#xff0c;中文意思是社区企业操作系统&#xff09;是Linux发行版之一&#xff0c;它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码&#xff0c…...

神经网络与深度学习Pytorch版 Softmax回归 笔记

Softmax回归 目录 Softmax回归 1. 独热编码 2. Softmax回归的网络架构是一个单层的全连接神经网络。 3. Softmax回归模型概述及其在多分类问题中的应用 4. Softmax运算在多分类问题中的应用及其数学原理 5. 小批量样本分类的矢量计算表达式 6. 交叉熵损失函数 7. 模型预…...

git学习及简单maven打包

前提&#xff1a; 已经有远程仓库地址 和账号密码了 已经安装git了 1.本地新建文件夹A用作本地仓库 2.在A文件夹下右键打开GIT BASH HERE 3.创建用户和密码&#xff0c;方便追踪提交记录 git config --global user.email “caoqingqing0108” //创建邮箱 git config --global …...

如何用MapTalks IDE来发布网站?

简介 MapTalks IDE 全称 MapTalks集成设计环境&#xff08;Integrated Design Environment&#xff09;&#xff0c;是由MapTalks技术团队开发的新一代web地图设计软件。 通过MapTalks IDE&#xff0c;您可以自由的创建二维和三维地图&#xff0c;在其中载入或创建地理数据&a…...

我用selenium开发了一个自动创建任务,解放重复性工作

我用selenium开发了一个自动创建任务&#xff0c;大大解放了我做重复性工作带来的疲惫感&#xff0c;收获了更多的乐趣。 我司有100多个服务&#xff0c;运维忙不过来的时候&#xff0c;就会让我们自己创建云负载&#xff0c;你首先需要在云服务上创建负载&#xff0c;再创建容…...

安卓11修改HDMI自适应分辨率

客户需要hdmi自适应屏幕分辨率&#xff0c;没发现有相关的指令&#xff0c;我发现设置中有个hdmi的Auto选项&#xff0c;于是就试试选中这个选项&#xff0c;试下了可以自适应&#xff0c;于是就找到相关代码&#xff0c;在开机完成后执行这个代码&#xff0c;基本满足需求&…...

Linux实验记录:使用Apache的虚拟主机功能

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 正文&#xff1a; 目录 前言&#xff1a; 正文&…...

分布式空间索引了解与扩展

目录 一、空间索引快速理解 &#xff08;一&#xff09;区域编码 &#xff08;二&#xff09;区域编码检索 &#xff08;三&#xff09;Geohash 编码 &#xff08;四&#xff09;RTree及其变体 二、业内方案选取 三、分布式空间索引架构 &#xff08;一&#xff09;PG数…...

Set和Map的应用场景

Set: 1.成员不能重复 2.只有键值&#xff0c;没有键名&#xff0c;有点类似数组 3.可以遍历&#xff0c;方法 add,delete,has Map: 1.本质上是键值对的集合&#xff0c;类似集合&#xff1b; 2.可以遍历&#xff0c;方法很多&#xff0c;可以干跟各种数据格式转换 Set和…...

小白级教程,10秒开服《幻兽帕鲁》

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。 前言 马上过年…...

视频硬字幕提取革命:87种语言本地OCR识别,让字幕提取从未如此简单

视频硬字幕提取革命&#xff1a;87种语言本地OCR识别&#xff0c;让字幕提取从未如此简单 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含…...

双轴按键摇杆:从电位器原理到Arduino实战应用全解析

1. 项目概述&#xff1a;从“两个电位器”到交互核心如果你拆开一个游戏手柄&#xff0c;或者摆弄过一些航模遥控器&#xff0c;大概率会看到那个可以前后左右拨动的小蘑菇头。这个小东西&#xff0c;就是双轴按键摇杆。乍一看&#xff0c;它结构简单&#xff0c;不就是两个电位…...

用 TLA+ 形式化验证 Harness 的并发安全性

从零到一:用TLA+形式化验证Harness CI/CD平台的并发操作安全性 副标题:解决分布式环境下流水线执行、资源抢占、状态一致性的核心痛点 摘要/引言 如果你是云原生团队的开发或运维工程师,大概率遇到过这样的场景:两个生产部署流水线同时触发,同时抢占同一个K8s集群的环境…...

Java 读写 Excel 公式:从基础到高级的实战总结

做数据处理的朋友应该都遇到过这种场景&#xff1a;需要批量生成带公式的Excel报表&#xff0c;或者读取现有表格中的公式进行二次计算。以前我都是手动在Excel里写公式&#xff0c;后来发现用Java代码来处理更高效&#xff0c;尤其是数据量大的时候。 今天整理一下平时用得比较…...

别再为OLED图片显示发愁了!手把手教你用Image2Lcd和PCtoLCD2002搞定STM32图片取模

STM32 OLED图片显示实战&#xff1a;从取模到驱动的完整解决方案 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和快速响应等特性&#xff0c;成为许多项目的首选显示方案。但对于初学者来说&#xff0c;如何将普通图片转换为单片机可识别的数据格式&#xff0c;并…...

UniApp视频模块深度配置:云打包与Android离线打包的差异详解与选型建议

UniApp视频模块深度配置&#xff1a;云打包与Android离线打包的差异详解与选型建议 在移动应用开发领域&#xff0c;视频功能已成为提升用户体验的关键要素。UniApp作为跨平台开发框架&#xff0c;其VideoPlayer模块的集成方式直接影响着开发效率和最终产品质量。面对云打包与离…...

Pills CSS Grid高级技巧:嵌套布局、偏移量与自定义宽度全解析

Pills CSS Grid高级技巧&#xff1a;嵌套布局、偏移量与自定义宽度全解析 【免费下载链接】pills A simple responsive CSS Grid for humans. View Demo - 项目地址: https://gitcode.com/gh_mirrors/pi/pills Pills CSS Grid是一个简单、响应式、轻量级的CSS网格系统&…...

Python之anonymate包语法、参数和实际应用案例

一、AnonyMate 包概述 AnonyMate是 Python 第三方数据匿名化工具包&#xff0c;版本 0.1.5&#xff0c;专注结构化/非结构化数据脱敏、假名化、加密与合成数据生成&#xff0c;适配医疗、金融、电商等敏感数据场景&#xff0c;助力合规&#xff08;GDPR、等保2.0&#xff09;。…...

深度解析:基于RAG与任务执行的AI Agent全能力矩阵在话务系统的工程实践

在企业通讯架构演进中&#xff0c;话务系统正经历从流程驱动向智能驱动的范式转移。传统话务台高度依赖预设的IVR流程与人工查询&#xff0c;不仅交互生硬&#xff0c;且存在严重的数据孤岛问题。本文将聚焦AI Agent的全能力矩阵&#xff0c;从技术架构与业务逻辑层面&#xff…...

Unity 2019粒子拖尾(Trails)五大生产级陷阱解析

1. 为什么Trails模块在Unity 2019里是个“安静的炸弹”你有没有遇到过这样的情况&#xff1a;粒子系统明明启用了Trails&#xff0c;预览时效果惊艳&#xff0c;一打包到Android或iOS设备上&#xff0c;Trail直接消失&#xff1f;或者在编辑器里拖动时间轴&#xff0c;Trail长度…...