📜  破解任何编码面试的实践

📅  最后修改于: 2021-06-26 13:19:38             🧑  作者: Mango

本文中的编码问题是困难的排序。这篇文章的想法是针对两种类型的人。

  1. 竞争力的编程准备(对于我ST和II第二年级学生):建议从可能除了链表,树和BST所有类别完成所有的问题。但是,也应该涵盖这些类别中的至少10个问题。如果您以前从未进行过竞争性编程,则强烈建议您先阅读如何开始竞争性编程。如果希望先准备好使用某种语言的语言,则可以先开始C++ Track或Java Track
  2. 面试准备建议涵盖所有主题。在每个主题中,您都可以根据自己的舒适程度从问题入手。

练习系统准确地告诉您代码失败的测试用例。如果您需要更清楚地了解问题,可以使用预期的输出按钮查看给定输入的输出。您还可以查看其他人的成功提交,以防万一。要查看其他解决方案,请单击问题说明底部的“所有提交”按钮。

话题 :

  • 数学的
  • 谜题
  • 数组
  • 细绳
  • 搜寻中
  • 排序
  • 散列
  • 矩阵
  • 递归
  • 分而治之
  • 链表
  • 双链和循环链表
  • 队列
  • 前缀总和和滑动窗口
  • 比特魔术
  • 二进制搜索树
  • 图形
  • 贪婪算法
  • 动态编程
  • 回溯
  • 特里
  • 杂项主题
  • 重要连结

数学上的:

  1. 打印图案(您只需要在此处编写函数)
  2. 打印表格(这是一个完整的代码问题。请在尝试此问题之前查看示例代码)
  3. 系列AP
  4. GP系列
  5. 最近号码
  6. 阿姆斯特朗数
  7. 一个数字的总和
  8. 倒数位
  9. 打印第K位数字
  10. 二进制数到十进制数
  11. 跳数
  12. 两个数字的GCD
  13. 两个数字的LCM
  14. 加两个分数
  15. 阵列的GCD
  16. 数字的阶乘
  17. 计算nPr
  18. 计算nCr
  19. 最大素数
  20. 完美数字
  21. 配对立方体数
  22. 查找M的第N个根
  23. 素数
  24. Eratosthenes筛
  25. 1至N之间所有质数的总和。
  26. 对素数

相关学习资源:数学算法和数论

谜题

  1. 数平方
  2. 3除数
  3. 检查四个点是否形成正方形
  4. 检查电源
  5. 重叠矩形
  6. 阶乘尾随零
  7. 时针和分针之间的角度
  8. 开门数量
  9. 三角数
  10. 第N个偶数斐波那契数
  11. 最后两位斐波那契
  12. 矩阵中的平方
  13. 一周中的天

相关学习资源:难题

数组:

  1. 数组操作(搜索,插入,删除)
  2. 阵列交替打印
  3. 数组中的最大值和最小值
  4. 数组第二大
  5. 数组元素的总和
  6. 反转数组
  7. 旋转阵列
  8. 较小元素的数量
  9. 从排序的数组中删除重复的元素
  10. 计算可能的三角形
  11. 领导者阵列
  12. 两个数字之间的最小距离
  13. 大小为3的已排序子序列
  14. 最大子阵列
  15. 多数元素
  16. 波阵
  17. 最大指数
  18. 两个数组中的最大求和路径
  19. 产品阵列拼图
  20. 在小范围数组中查找重复项
  21. 查找缺失和重复
  22. 股票买卖
  23. 困雨水
  24. 与给定总和配对
  25. 巧克力分销问题
  26. 最长连续子序列
  27. 三路分区

相关学习资源:数组数据结构

细绳 :

  1. 检查回文
  2. 检查字谜
  3. 七巧板回文
  4. 标题大小写转换
  5. 排序字符串
  6. 合并两个字符串
  7. 拯救钢铁侠
  8. 好的或坏的字符串
  9. URLify给定的字符串
  10. 提取最大值
  11. 反转给定字符串的单词
  12. 实施strstr
  13. 检查子序列
  14. 检查旋转
  15. 检查两个字符串是否为k-anagram
  16. 罕见字符
  17. 字谜搜索
  18. 第一个重复字符
  19. 第一个非重复字符
  20. 字符串最长的唯一字符
  21. 最长回文子串
  22. 查找字符串的第k个字符
  23. 字符串中最小的窗口,包含另一个字符串的所有字符
  24. 添加二进制字符串
  25. 将两个字符串相乘
  26. 10的最接近倍数

相关学习资源:字符串数据结构

搜寻:

  1. 线性搜寻
  2. 面对太阳
  3. 磁铁阵列问题
  4. 二元搜寻
  5. 排序数组中的楼层
  6. 计算排序数组中的出现次数
  7. 搜索经过排序和轮换的
  8. 寻找遗失的号码
  9. AP的缺失要素
  10. 数的平方根
  11. 在排序的二进制数组中查找过渡点
  12. 最后一个索引
  13. 峰值元素
  14. 分配最小页面数
  15. 三种常见元素
  16. 最小正缺数

相关学习资源:搜索算法

排序:

  1. 检查数组是否排序
  2. 排序二进制数组
  3. 对0、1和2的数组进行排序
  4. 气泡排序
  5. 插入排序
  6. 选择排序
  7. 快速排序
  8. 合并排序
  9. 对两半进行排序时对数组进行排序
  10. 相对排序
  11. 数组中的三元组和
  12. 最小掉期排序
  13. 按频率对元素进行排序
  14. 三胞胎家庭
  15. 计算三胞胎

相关学习资源:排序算法

散列:

  1. 计算不同的元素
  2. 另一个数组的数组子集
  3. 细节问题
  4. 计算元素的频率
  5. 检查两个数组是否相等
  6. 第一个元素出现k次
  7. 在第一但第二
  8. 非重复元素
  9. 组合图组
  10. 选举获胜者
  11. 用给定的总和检查一对
  12. 计算差异为k的不重复对
  13. 计算给定总和的对
  14. 找出所有四个和数
  15. 一个简单的分数
  16. 最大的斐波那契子序列

相关学习资源:哈希数据结构

矩阵 :

  1. 矩阵转置
  2. 以蛇形打印矩阵
  3. 以螺旋形式打印给定的矩阵
  4. 数独有效吗
  5. 计算排序矩阵中的零
  6. 矩阵中的平方
  7. 布尔矩阵问题
  8. 按行和列排序搜索
  9. 查找最大数量为1的行
  10. 计算矩阵对的总和
  11. 行明智排序矩阵的中位数

相关学习资源:矩阵数据结构

递归:

  1. 印刷图案
  2. 握手
  3. 河内塔
  4. 约瑟夫斯问题
  5. 递归删除所有相邻的重复项
  6. 电话号码可能包含的字词
  7. 洪水填充算法
  8. 字符串的排列

相关学习资源:递归

分而治之:

  1. 编写自己的幂函数
  2. 第n个斐波纳契数的程序
  3. 两个排序数组的第K个元素
  4. 两个排序数组的中位数
  5. 唐津算法
  6. 画家的分区问题
  7. 凸包
  8. 计算倒数

相关学习资源:分而治之算法

链表:

  1. 打印链接列表
  2. 链表的长度
  3. 链表中给定索引处的节点
  4. 链表中间
  5. 链表末尾的第n个节点
  6. 删除节点
  7. 删除第k个节点
  8. 删除链表中M个节点后的N个节点
  9. 无头删除
  10. 重新排列链表
  11. 分离偶数和奇数(仅使用一次遍历)
  12. 重新订购清单
  13. 多项式加法
  14. 插入排序列表
  15. 成对交换节点
  16. 反向链接列表
  17. 以给定大小的组反向链接列表。
  18. 检查回文
  19. 展平链表
  20. 获取交点
  21. 从排序列表中删除重复项
  22. 从未排序的列表中删除重复项
  23. 对0、1、2和2的链表进行排序。
  24. 通报链表
  25. 检测链表中的循环
  26. 查找循环长度
  27. 删除链表中的循环
  28. 加两个以链表表示的数字
  29. 用随机指针克隆链表
  30. 将1加到表示为链表的数字上
  31. 添加两个表示为链表的数字
  32. 将两个链表相乘
  33. 合并两个排序的链表
  34. 合并链表上的排序
  35. 两个链表的交集
  36. 两个链表的并集

相关学习资源:链表数据结构

双链和循环链表

  1. 在双向链接列表中插入节点
  2. 删除双向链接列表中的节点
  3. 循环链接列表遍历
  4. 将循环链表分为两半
  5. 以排序方式插入到已排序的DLL中
  6. 双向链接列表上的QuickSort
  7. 合并双链表上的排序
  8. 按P节点旋转双向链接列表
  9. 异或链接列表

相关学习资源:双链表和循环链表。

  1. 使用数组实现堆栈
  2. 使用链表实现堆栈
  3. 检查括号是否平衡
  4. 反转堆栈
  5. 在一个数组中实现两个堆栈
  6. 使用getMin设计堆栈
  7. 名人问题
  8. 股票跨度问题
  9. 下一个更大的元素
  10. 下一个较小的元素
  11. 最长有效括号

相关学习资源:堆栈数据结构

排队和出队

  1. 使用链表实现队列
  2. 使用数组实现队列
  3. 使用队列实现堆栈
  4. 使用堆栈实现队列
  5. 反转队列
  6. 环游

相关学习资源:队列数据结构

  • 流中的第一个非重复字符

    前缀总和和滑动窗口

    1. 平衡点
    2. 检查是否有一个太阳为0的子数组
    3. 总和为K的最长子阵列
    4. 最长子数组,总和可被K整除
    5. 等于1和0的最大子数组
    6. 两个阵列中最长的公共跨度,具有相同的1和0
    7. 在大小为k的任何子数组中找到最大和
    8. 计算大小为k的每个窗口中的不同元素
    9. 检查给定总和的子数组

    相关学习资源:前缀和和滑动窗口

    比特魔术

    1. 检查数字是偶数还是奇数。
    2. 翻转位数
    3. 异或游戏
    4. 在某个位置查找位
    5. 交换奇数位和偶数位
    6. 2的幂
    7. 奇怪的发生元素
    8. 数组中缺少数字
    9. 额外元素的索引
    10. 反转位
    11. 计数设置位
    12. 功率设定

    相关学习资源:魔术师

    1. 有序遍历
    2. 预购遍历
    3. 后遍历
    4. 级别顺序遍历
    5. 查找二叉树的高度
    6. 计数二叉树中的叶子
    7. 检查孩子的总和
    8. 镜树
    9. 检查平衡树
    10. 二叉树中的最低共同祖先
    11. 二叉树直径
    12. 二叉树的左视图
    13. 二叉树的右视图
    14. 最大路径总和
    15. 逐行遍历级别顺序
    16. 后顺序和顺序中的树
    17. 预购和订购中的树
    18. 在相同级别连接节点
    19. 之字形水平顺序遍历
    20. 序列化和反序列化二叉树
    21. 离开DLL
    22. 二叉树到双链表
    23. 二叉树到循环双链表

    相关学习资源:树数据结构

    二进制搜索树

    1. BST搜索
    2. BST插入
    3. BST删除
    4. 最低BST
    5. 有序遍历和BST
    6. 计算位于给定范围内的BST节点
    7. 添加所有更大的值
    8. BST的前身和后继
    9. BST中最近的邻居
    10. BST中最低的共同祖先
    11. 将级别订单遍历转换为BST
    12. 普通BST到平衡BST
    13. 与BST中的给定总和配对
    14. 检查BST
    15. 交换了两个节点的正确BST
    16. BST的中位数
    17. BST中的第k个最小元素
    18. 独特的BST
    19. 阵列到BST
    20. 预购遍历和BST
    21. 预购到后购
    22. 遍历叶节点
    23. BST中的零和三元组
    24. 合并两个BST
    25. 最大的BST子树

    相关学习资源:二进制搜索树

    1. 二进制堆操作
    2. 堆高
    3. 堆排序
    4. 对几乎排序的数组进行排序
    5. K最大元素
    6. 流中的第K个最大元素
    7. 流的中位数
    8. 合并k个排序的数组

    相关学习资源:堆数据结构

    图形

    1. 打印邻接表
    2. 广度优先搜索
    3. 深度优先搜索
    4. 查找路径是否存在
    5. 骑士步道
    6. 蛇梯问题
    7. 二部图
    8. 在无向图中检测周期
    9. 在有向图中检测周期
    10. 用给定的数字查找前n个数字
    11. 烂橘子
    12. 拓扑排序
    13. 最短的源到目标路径
    14. 图的传递闭包
    15. 紧密连接的组件

    相关学习资源:图形数据结构

    贪婪算法

    1. 小背包
    2. 给定总和的最大数
    3. 活动选择
    4. 一间房间N次会议
    5. 最低平台
    6. 最小硬币数
    7. 作业排序问题
    8. 最小化高度
    9. 霍夫曼编码
    10. 霍夫曼解码
    11. 最小生成树
    12. Dijkstra用于邻接矩阵

    相关学习资源:贪婪算法

    动态编程

    1. 打印前n个斐波那契数字。
    2. 计算到达第n个楼梯的方法
    3. 切段
    4. 卡丹算法
    5. 斯蒂克勒小偷
    6. 最小跳数
    7. 解码消息总数
    8. 最低成本路径
    9. 硬币找零
    10. 最长公共子序列
    11. 不允许连续1
    12. 编辑距离
    13. 杆切割
    14. 水溢出
    15. 最大小费计算器
    16. 最长递增子序列
    17. 最大总和增加子序列
    18. 最大长度链
    19. 0 – 1背包问题
    20. 最大小费计算器
    21. 交错的字符串
    22. 最长回文序列
    23. 通配符模式匹配
    24. 箱子堆放
    25. 最长的双子序列
    26. 最小总和分区
    27. 矩阵中形成的最大正方形
    28. 断字
    29. 矩阵链乘法
    30. 特殊键盘
    31. 鸡蛋丢拼图
    32. 游戏的最佳策略

    相关学习资源:动态编程

    回溯

    1. 多次跳鼠迷宫
    2. 硬币和游戏
    3. 哈密顿路径
    4. 解决数独
    5. 组合总和–第2部分
    6. 组合总和
    7. 子集
    8. K掉期中最大的数字
    9. M色问题
    10. 黑和白

    相关学习资源:回溯

    特里

    1. 搜寻和插入
    2. 删除
    3. 二进制矩阵中的唯一行
    4. 不同子串的计数
    5. 词变乱

    相关学习资源:Trie数据结构

    杂项测试您的整体学习

    1. 最长的公共前缀
    2. 实施Atoi
    3. 两个数字之和最接近零
    4. 整个数组中最小的较大元素
    5. 最大矩形
    6. 查找零和的三元组
    7. 计算两个数组中的元素
    8. 合并K个排序的链表
    9. 最大差异
    10. 字符串圈
    11. 所有可能的断字
    12. 外星人词典
    13. 设计一个很小的URL或URL缩短器
    14. 实施LRU缓存

    重要链接:

    1. Sudo位置:适用于Amazon,Microsoft,Adobe等公司
    2. Sudo位置2:适用于TCS,Infosys,Wipro,Cognizant等公司
    3. 在第1轮中提出的能力问题:为此目的而设计的选修课。
    4. 来自不同计算机科学学科的MCQ:学科明智测验
    5. 所有公司的面试理论和编码问题:公司明智的所有实践问题。
    6. 所有公司的面试经历:面试一角。
    7. 必须为亚马逊,微软,Adobe等公司做编码问题
    8. 必须在公司范围内进行编码问题

    您也可以查看我们最新的在线课程系列,以学习DS&Algo名为DSA ,它涵盖了从基本到高级的数据结构的所有内容。

    这是一个为期10周的在线认证计划,专门针对数据结构和算法,其中包括预先录制的高级视频讲座和练习中的编程问题。您将学习解决各种计算问题的算法技术,并将实现200多种算法编码问题。本课程为您提供大量的编程挑战,这些挑战可能会在您下一次面试时面临。该课程主要侧重于数据结构和算法:在基于顶级产品的公司中进行选择的关键。

    课程的主要特点

    • 由GeeksforGeeks团队编写的,井井有条的数据结构和算法教程。
    • GeeksforGeeks的创始人兼首席执行官Sandeep Jain先生提供了高级视频讲座。
    • 专门的问题解决团队可以为您提供帮助。
    • 视频解决方案每周评估测试。
    • 基于性能的证书
    • GeeksforGeeks的实习机会。
    • 课程是自定进度的:任何人都可以随时注册,付款并开始课程。

      还有很多。

    该课程有两个版本:

    1. 有疑问帮助:带有疑问帮助的自定进度在线DSA课程的价格为3,999印度卢比。单击此处购买您的票
    2. 没有疑问的帮助:毫无疑问,需要帮助的在线DSA自学课程价格为2,499印度卢比。点击这里购买您的票



      如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。