【总结】常见编程题型总结1-数据结构&算法

本文总结了编程面试中常见的题型,主要分为数据结构和算法两大类。数据结构涵盖基本类型、数组、链表、队列、栈、树和图等,强调了各类数据结构的特性和应用场景。算法思想方面,文章讨论了数学相关问题、贪心法、分治法、动态规划和回溯法,并提供了相关解题策略和实例。通过这些总结,有助于理解和掌握面试中的关键编程技巧。
摘要由CSDN通过智能技术生成

更新中…

  本文主要概括总结了一些面试中编程题目的分类,以及常见的一些解决办法。
题目分类主要为两种方式:(1)按照 数据结构 分类;(2)按照 算法思想 进行分类。

按照数据结构划分

  首先了解各个数据结构的一些基本特性,然后才能找到适合的场景。而在面试中,主要考察的是你对于不同数据结构的性质的理解。

基本类型

不使用中间变量,交换两个数值变量的值

  • 乘除法
  • 异或运算

数组 - 1维

数组的特性

随机访问

(1)【随机性】 数组具有随机访问的特性(根据下标,快速定位到数据)。所以可以利用一定的hash法,将数据与其下标形成一定的映射。(比如:年龄为1 到 35,那么可以映射到一个 整型数组A中, A[i]中 i 表示 年龄,此时我们只是应用了下标,而实际存储数据的空间并没有使用,所以我们可以利用其做其他事情,比如说统计人数)

(2)【hash应用信号】当数组中含有有限范围的整型时,那么这类问题很可能可以通过利用数据与下标的hash关系得以解决。

相关题目
* 【下标与hash217. Contains Duplicate

1维数组 + 查找 + 有序

数组中求第K大数
问题:

第 k 大的数一定能 找到?(二分查找的过程不会跳过?)
每次排除了无效信息,不断排除,一定可以找到 k 。(排除思维理解二分查找,思想和这里很像

1维数组 与 回溯

【数组 + 排列 + 回溯(枚举)】46. Permutations
【数组 + 排列 + 回溯 + 去重47. Permutations II

环形数组

这类问题下标的控制要尤其注意。
(示例2:【栈 + 环形数组503. Next Greater Element II

数组 - 2维

  二维数组通常可以用来刻画地图规划,棋类等问题。在解决这些问题时,都用到了重要的算法思想(后面会介绍)。

地图类问题

  地图规划类问题,通常可以通过动态规划回溯法来解决。(见下面例子)

【数组 + 回溯法 + 字符地图 + 存在类问题79. Word Search

【数组 + 动态规划 + 无障碍方格地图 + 最值类问题64. Minimum Path Sum

【数组 + 动态规划 + 路径数量计算问题】62. Unique Paths (之所以说其动态规划,因需考虑多阶段决策)

【数组 + 动态规划 + 有障碍地图 + 路径数量计算】63. Unique Paths II ( 在上面题目上加入有障碍)

感想
  【解决复杂问题62. Unique Paths63. Unique Paths II 题目非常相似,63题目只是在62的基础上,在地图上加入了障碍信息。其解答的过程告诉我们,当遇到一个很复杂的问题时,尝试去掉一些条件(简化问题),求得解之后,再去增加条件求解

棋类问题

  棋类等问题,通常可以用回溯法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值