面试问题中的十大算法_深圳阿文的博客-程序员秘密

技术标签: 算法  爬虫  spring boot  java  后端  flask  

**

  1. 在这篇文章中,撰写了“重要主题的十大编码问题及其解决方案”。如果您准备进行编码采访,则必须解决这些问题。 一、 主题:
    1. 链接列表
    2. 动态编程
    3. 排序和搜索
    4. 树/二进制搜索树
    5. 数论
    6. BIT操纵
    7. 字符串/数组 二、 图形
    8. 广度优先搜索(BFS)
    9. 深度优先搜索(DFS)
    10. 从源到所有顶点的最短路径** Dijkstra **
    11. 从每个顶点到其他每个顶点的最短路径** Floyd Warshall **
    12. 至在图形中检测循环联合查找
    13. 最小生成树** Prim **
    14. 最小生成树** Kruskal **
    15. 拓扑排序
    16. 切换(查找字符板上的所有可能单词) 10 。图中的桥 三、 链表
    17. 在链表中插入一个节点(基于某些约束)
    18. 在链表中删除一个给定节点(在给定的约束下)
    19. 比较表示为链表的两个字符串
    20. 添加两个由链表表示的数字 5 。在一个备用位置将一个链表合并到另一个链表中
    21. 反转给定大小的组中的一个链表
    22. 2个链表的并集和交集
    23. 检测并删除链表中的循环
    24. 合并对链表的排序 10。从单链接列表中选择一个随机节点 四、 动态编程
    25. 最长的公共子序列
    26. 最长的增长子序列
    27. 编辑距离
    28. 最小划分
    29. 覆盖距离的方式
    30. 矩阵中的最长路径
    31. 子集和问题
    32. 游戏的最佳策略
    33. 0-1背包问题
    34. 布尔括号问题 五、 排序和搜索
    35. 二进制搜索
    36. 在排序并旋转的数组中搜索元素
    37. 冒泡排序
    38. 插入排序
    39. 合并排序
    40. 堆排序(二进制堆)
    41. 快速排序
    42. 插值搜索
    43. 找出最小/最大的Kth未排序数组 10中的元素。给定一个排序数组和一个数字x,在数组中找到总和最接近x的对。 六、 树/二进制搜索树
    44. 查找二叉树的最小深度
    45. 二叉树的最大路径总和
    46. 检查给定数组是否可以表示二叉搜索树的预遍历
    47. 检查二叉树是否为完整的二叉树
    48. 底部查看二叉树
    49. 在二叉树的顶视图中打印节点
    50. 从根到叶路径的长度小于K的节点上删除节点
      8.二叉搜索树中的最低共同祖先
    51. 检查一棵二叉树是否为另一棵二叉树的子树 10 。反转理想二叉树的备用级别 七、 数论
    52. 模幂运算
    53. 模乘法逆运算
    54. 素数检验| 集合2(Fermat方法)
    55. 欧拉Totient函数
    56. Eratosthenes的筛子
    57. 凸包
    58. 基本和扩展的欧几里得算法
    59. 分段筛子
    60. 余数定理
    61. Lucas定理 八、 BIT操作
    62. 最大子数组XOR
    63. 幻数
    64. 所有对之间的位差之和
    65. 交换所有奇数和偶数位
    66. 查找一次出现的元素
    67. 给定数字的二进制表示形式
    68. 计算所有总数中的总置位位数从1到n的数字
    69. 旋转数字的位数
    70. 计算要翻转以将A转换为B的位数
    71. 查找下一个稀疏数字 • 堆叠与排队 • 树/二进制搜索树 • 前缀匹配和滑动窗口 • 堆 • 贪婪算法 • 特里 堆叠与排队
    72. 下一个更大的元素
    73. 圆括号
    74. 股票跨度问题
    75. 使用两个队列实现堆栈
    76. 使用两个堆栈实现队列
    77. 在一个数组中实现2个堆栈
    78. 在数组中实现k个堆栈
    79. 实现一个特殊的堆栈,该堆栈在O(1)时间内支持getMin()
    80. 实施LRU缓存
    81. 反转堆栈 树/二进制搜索树
    82. 检查二叉树是否是BST
    83. 将给定的二叉树转换为双链表
    84. 有序树遍历而无递归且无栈
    85. 水平顺序遍历
    86. 从给定的有序遍历和预遍历遍历构造树
    87. 根据给定的预遍和后遍历构造完整的二叉树
    88. 查找二叉树的两个节点之间的距离
    89. 交换BST的两个节点,更正BST
    90. 打印二叉树的左视图
    91. 将二叉树展平为链接列表 前缀匹配和滑动窗口
    92. 平衡指数
    93. 总和为0的子数组
    94. 二进制数组中具有相同数量1和0的子数组
    95. 大小为k的子数组的最大和
    96. 每个大小为k的窗口中的不同元素
    97. 具有给定总和的正数子数组
    98. 每个窗口中大小为k的最小元素
    99. N-bonacci数
    100. 二进制字符串中形式为0 * 1 * 0 *的最长子序列
    101. 两个二进制数组中具有相同总和的最长跨度 堆
    102. 中位数为整数流(运行整数)
    103. 流中的第K个最大元素
    104. 对几乎排序(或K排序)的数组进行排序
    105. 数组中的k个最大(或最小)元素
    106. 合并k个排序的数组
    107. 外部分类
    108. 霍夫曼解码
    109. 由数组的数字组成的两个数字的最小和
    110. 从k个列表中查找包含元素的最小范围
    111. 检查给定的二叉树是否为堆 贪婪算法
    112. 火车站/汽车站所需的最少平台数量
    113. 一次允许两个作业的作业计划
    114. Prim的最小生成树(MST)
    115. Dijkstra最短路径算法
    116. 排序输入的有效霍夫曼编码
    117. 小背包问题
    118. 图形着色
    119. 贪婪算法以找到最小数量的硬币
    120. 最大限度地减少彼此借钱的给定朋友之间的现金流量
    121. 以最小的成本连接n条绳索 特里
    122. 在二进制矩阵中查找重复的行
    123. 断字问题
    124. 给定字符串中最长的公共前缀
    125. 从文件中找到k个最常见的单词
    126. 查找给定列表中每个单词的最短唯一前缀
    127. 最长前缀匹配
    128. 在整数流中找到给定整数的最大XOR
    129. 使用Trie的自动完成功能
    130. 实施电话目录
    131. 使用后缀Trie计数字符串的不同子字符串

**

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44537808/article/details/106949797

智能推荐

load函数_weixin_30797199的博客-程序员秘密

load函数的作用1.load函数的作用是,从server获取数据,而且把数据放到指定的元素(通常是div元素)中。2.说的再具体一些就是,把获取到的数据插入到当前文档的某个div元素中。server上的资源文件上面所说的所谓的数据,就是server上的资源文件(.html、.jsp等)。资源文件中不能包括什么?1.假设是一般的情况的话,应该...

JavaScript constructor和instanceof,JSOO中的一对欢喜冤家_梦见阳光。。的博客-程序员秘密

至少每个尝试JavaScriptOO的程序员都花费很多精力用在面向对象机制的模拟上而非业务本身.这对Java,C++甚至Php的开发者来讲都是难以想象的.更糟糕的是模拟OO对于JavaScript高级程序员都有着邪恶的吸引.因为干这个事儿超然于业务之上,有种创造新编程语言一般的快感,可以令IQ尽情挥洒.正如前些年大家都想把自个网站的common.js写成个框架一样.直到YUI,JQuery...

Java 强软弱虚 引用_N_Saber的博客-程序员秘密

强引用 :A a = new A ();这就是强引用,只有a = null 或者a 不在指向堆中的 a 对象, a对象才会被jvm 回收软引用:

Win10微软拼音使用小鹤双拼方案_win10 小鹤双拼_taller_2000的博客-程序员秘密

双拼作为一种快捷输入法,相当对于五笔来说,学习曲线不是那么陡峭,掌握起来相对容易,速度比全拼也很大提升。目前流行的双拼方案有多种:微软、搜狗、QQ、百度、谷歌、加加、紫光、小鹤等等,编码方案虽然略有区别,大家总体来说,差别不大,如果大家开始学习的就微软双拼,那么恭喜你,任何一个Windows电脑都可以用,不幸的是我是从小鹤双拼开始的,现在已经习惯了,不想再去切换到其他的双拼方案。如果使用百度、讯飞输入法,都已经内置了小鹤双拼,在这方面微软不够大度,只有自家的双拼方案,但是微软也没有把其他方案拒之门外,可以通

用多线程处理FTP上传_weixin_30861797的博客-程序员秘密

  在开发中遇到总站发送命令请求分站将某资源通过FTP上传过来,也就是总站提取分站的资源问题。并且总站实时可以获取已经提取了文件的大小的比例。  思路:1.首先分站要将文件大小告知总站 2.总站收到文件大小后,根据指定路径去判断指定路径文件夹(分站的文件存储的位置)下的文件大小,然后和当前文件大小/总大小,就获取了已经上传的所占比。  总站发送请求就不再赘述...

sklearn KFold_未空blog的博客-程序员秘密

from sklearn.model_selection import KFoldimport numpy as npX = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10],[11, 12]])y = np.array([1, 2, 3, 4, 5, 6])kf = KFold(n_splits=3)print( kf.get_n_splits(X))kfs = kf.split(X)for train_index, test_ind...

随便推点

Android 中关于接口回调,监听的一看就懂版本_android 接口回调_南巷故人DL的博客-程序员秘密

Android(Java)中的看一遍就懂的回调,接口监听一、回调必有的四要素:1.回调的接口,该接口一般在使用的类里面创建或者单独创建 //创建的回调接口,以及接口中要做的事 public interface Callback{ void doSomething(); }2.在使用的类中接口的定义变量(接口不可以实例化) // 一个接口变量 private Callback mCallback;3.一个给接口变量赋值的方法//一个给接口变量赋值的方法

Android 最流行的吸顶效果的实现及代码_旺仔哥的博客-程序员秘密

开始逐渐领略到ItemDecoration的美~今天让我 使用 ItemDecoration 来完成 可推动的悬浮导航栏的效果,最终实现的效果如下图:具体实现步骤如下:根据我前面的文章所讲的RecyclerView的基本使用,我们先来完成基本的recyclerView:第一步:布局里写一个RecyclerView第二步:实例化recyclerVi

1178_成绩排序(数据排序)_1178:成绩排序_weixin_46523181的博客-程序员秘密

1178_成绩排序(数据排序)时间限制: 1000 ms 内存限制: 65536 KB提交数: 18756 通过数: 7478【题目描述】给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。【输入】第一行为n (0 < n < 20),表示班里的学生数目;接下来的n行,每行为每个学生的名字和他的成绩, ...

2588: Spoj 10628. Count on a tree (主席树,树上路径第K大值)_know_heng的博客-程序员秘密

2588: Spoj 10628. Count on a treeTime Limit: 12 Sec  Memory Limit: 128 MBSubmit: 7448  Solved: 1815[Submit][Status][Discuss]Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和

H.266/VVC技术学习:帧内预测之MIP技术_vvc帧内预测_涵小呆的博客-程序员秘密

Matrix Weighted Intra Prediction(MIP)技术,即矩阵加权帧内预测技术,是VVC中新增加的一种帧内预测技术。其最初的思想来源于基于神经网络的帧内预测技术(JVET-J0037),即利用多层神经网络基于相邻已重建像素预测当前pu像素值。但是这种预测方式复杂度太高,经过权衡,发展出最后采纳的基于线性仿射变换的帧内预测技术。Tracking route: N0217 ...

推荐文章

热门文章

相关标签