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

数据结构-字符串

添加元素(add(int num)

  1. 检查当前元素数量是否等于数组容量(size == arr.length

    • 如果已满,创建一个新数组brr,容量是原数组的 1.5 倍

    • 将原数组元素复制到新数组,然后将arr指向新数组(完成扩容)

  2. 将新元素添加到arr[size]位置

  3. 元素数量size加 1

 指定位置添加(add(int position, int num)

  1. 先检查插入位置的合法性(position < 0 || position > size则提示错误)

  2. 如需扩容,执行与上面相同的扩容逻辑

  3. 从最后一个元素开始,将position位置及之后的元素依次向后移动一位(避免覆盖数据)

  4. position位置插入新元素

  5. 元素数量size加 1

二 删除元素(delete(int num)

  1. 从数组末尾向前遍历(i从size-1到0

  2. 当找到与num相等的元素时:

    • 从该元素的下一位开始,将所有元素依次向前移动一位(覆盖要删除的元素)

    • 元素数量size减 1

  3. 注:此实现会删除所有与num相等的元素(因为是遍历整个数组)

字符串查找:

  1. 遍历数组:从数组的第一个元素(索引0)开始,逐个检查到当前实际元素的最后一个(索引size-1)。

  2. 匹配判断:在遍历过程中,将每个元素与目标值num进行比较。

  3. 返回结果

    • 如果找到与num相等的元素,立即返回该元素所在的索引位置(第一个匹配项)。
    • 如果遍历完所有元素都没有找到匹配项,则返回-1,表示该元素不存在于集合中。

二分查找法查找有序数组

  1. 递归终止条件left > right 时,说明查找范围无效,返回 -1(没找到)。
  2. 取中间索引mid = left + (right - left) / 2(避免直接 (left+right)/2 可能的整数溢出)。
  3. 匹配判断
    • 找到目标值:arr[mid] == target,返回 mid(索引)。
    • 中间值小于目标值:说明目标值在右半段,递归查找 [mid+1, right]
    • 中间值大于目标值:说明目标值在左半段,递归查找 [left, mid-1]

http://www.dtcms.com/a/325993.html

相关文章:

  • 人工智能-python-机器学习- 欠拟合与过拟合:岭回归与拉索回归的应用
  • TopLiDM架构解析:DriveVLM如何融合VLM与E2E自动驾驶
  • 一文读懂 C# 中的 Lazy<T>
  • (三十二)-java+ selenium自动化测试-select 下拉框
  • Linux运维学习第十四周
  • wed前端第三次作业
  • 营销 “远交近攻”:开辟市场新天地-中小企实战运营和营销工作室博客
  • MySQL数据库简介
  • 【基本有序数组中找到有且仅有的一个无序元素并进行排序之顺序法】2022-10-12
  • 贪心----3. 跳跃游戏 II
  • 计算机网络:1、OSI参考模型和TCP/IP模型
  • 天塌了!HCIE数通实验预计今年Q4变题,难度再上升?!
  • Linux ethernet驱动移植之常见问题
  • 【Docker-Day 13】超越默认Bridge:精通Docker Host、None与自定义网络模式
  • 从 0 到 1:用 MyCat 打造可水平扩展的 MySQL 分库分表架构
  • 【算法专题训练】11、字符串中的变位词
  • 类和对象(中上)
  • 计算机网络---DNS(域名系统)
  • Go 语言中的切片排序:从原理到实践玩转 sort 包
  • 【第四章:大模型(LLM)】05.LLM实战: 实现GPT2-(6)贪婪编码,temperature及tok原理及实现
  • 云服务器部署SSM项目
  • 逻辑备份恢复工具gs_dump/gs_restore
  • Apache Ignite分片线程池深度解析
  • app,h5,微信,携带传递参数的两种方法getCurrentPages()
  • LAMP/LNMP示例
  • Unknown collation: ‘utf8mb4_0900_ai_ci‘
  • thymeleaf 日期格式化显示
  • 基于 ZooKeeper 的分布式锁实现原理是什么?
  • Vue 利用el-table和el-pagination组件,简简单单实现表格前端分页
  • 【数据库】如何使用一款轻量级数据库SqlSugar进行批量更新,以及查看最终的Sql操作语句