IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 剑指offer2 类型总结: 数组移动替换和排序搜索 -> 正文阅读

[数据结构与算法]剑指offer2 类型总结: 数组移动替换和排序搜索

数组移动替换型

常见题干

这类题目一般传递的目的都很明确,例如“替换空格”,“旋转数组”等,理解题意并不困难,不过需要认真读题争取把握所有信息(是否排序,要求复杂度等)

题目思路

  • 首先要思考能否原地交换?如果可以,覆盖的情况需要考虑;如果不可以,借助列表or字符串进行拼接。
  • 然后采取相应的算法(主要是考虑从后向前or从前向后,以及扫描情况判断)进行代码编写,比如字符串中的切片,数组中的交换,这里常常和排序搜索型有相通之处。
  • 最后检查取余情况。

涉及题目

排序搜索型

常见题干

排序往往是为搜索做铺垫,有时候甚至可以不用排序就可以直接搜索(比如链表中倒数第K个结点)!这类题目的解决方法有很多种,一定要先沟通是空间or时间优先。其中较为典型的两个排序方法为:

  • 二分法:碰到 “数组or串,有序,搜索,数字范围1~n(这个要格外注意,可以利用下标关系确定信息!)” 这些关键词常常有意想不到的效果!
  • 快排:快排经常会以一种变体的形式存在,如双指针等,我们只需要抓到其精髓是 根据某种关系交换到自己应该在的位置
  • 快慢指针:常常用于搜索一个快一个慢,二者维护一个固定距离的情况

题目思路

  • 当你确定了使用二分法or快排,先要寻找的就是分割条件(二分法中称之为med,有可能是该下标或该下标对应的数字;快排中则称为哨兵,是左右指针相撞的地方,这二者本质上都是“要插入的位置”)
  • 再寻找:题目要求和分割条件的关系以确定终止条件,具体而言就是 1. 和谁比较(可能是最后一个元素,也可能是某个位置的特定元素) 2. 比较结果影响什么(需要交换or缩小范围)
  • 最后关注细节:相等的情况是否需要额外考虑,边界条件和等号是否需要(这两者常常综合判定,即相等的情况不退出循环,指针需要再变一次)

涉及题目

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:44:52  更:2021-10-23 12:46:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:41:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码