leetcode
文章平均质量分 91
zkyCoder
这个作者很懒,什么都没留下…
展开
-
笔试常考知识点
本博客主要记录笔试中常考的一些知识点或者技巧。原创 2022-09-04 18:18:47 · 275 阅读 · 1 评论 -
Leetcode贪心题
贪心贪心的思想就是通过局部的最优解得到全局的最优解。使用贪心的方法需要满足以下两个条件:贪心选择性贪心选择性指的是:一个优化问题的全局优化解可以通过局部优化选择得到。换句话说,当我们要解一个问题的时候,先做一步最优选择。这个问题被解决了一部分,然后再对剩下没解决的问题用迭代的方式继续使用上一步的方法做当前的最优选择。举个更简单的例子,一个人吃不下一个蛋糕,但是他想把尽可能吃得越甜越好,那么他第一口就会选择最甜的那部分吃,这个最甜的部分就是最优选择。吃完了第一口,他再从剩下的部分中选择最甜的一口,直到原创 2022-03-17 20:03:57 · 566 阅读 · 0 评论 -
Leetcode树相关题(dfs,bfs,bst)
dfsdfs指的是深度优先遍历,通常在树或者图的拓扑结构中使用,算法思想是每次遍历到一个节点时,会根据这个方向继续遍历该节点的子节点,深挖下去,直到下面挖的节点没有子节点时,再回到该上一个节点。dfs一般使用递归来实现,因为递归完美符合dfs的思想。如果不使用递归的话,就是用栈来实现其思想,因为本质上递归也是栈的一种应用。每次遍历节点时把节点压到栈中,然后继续把子节点压到栈中,直到没有子节点了就出栈。前中后序遍历 1 / \ 2 3 / \ \4 5 6层次原创 2022-03-12 23:13:25 · 823 阅读 · 0 评论 -
几种常见的排序方法
快速排序快速排序体现了分治的思想。每次决定一个数的最终位置,将其放置到正确位置后,再通过递归的方式将两头的数组按照同样的方式快速排序。需要注意的是,使用快速排序时,需要随机取那个决定数,这叫做随机选择比较子。因为当数组时已排好序的时候,指针只会从尾刷到头,快速排序的效率就会非常低,时间复杂度为O(n^2)。所以随机选择比较子后,将比较子和数组最左边的数交换,再做排序。这样的话就算数字已经排好序了,指针也不会从尾刷到头。快速排序是一种不稳定的算法。算法不稳定是指:在排序之前,有两个数相等,但是在排序结原创 2022-03-11 00:25:16 · 396 阅读 · 0 评论 -
Leetcode动态规划题
动态规划基本思想:问题的最优解如果可以由子问题的最优解推导得到,则可以先求解子问题的最优解,再构造原问题的最优解;若子问题有较多的重复出现,则可以自底向上从最终子问题向原问题逐步求解。使用条件:可分为多个相关子问题,子问题的解被重复使用。基本步骤:首先创建一个存放子问题的解的空间,并做初始化。将原问题尝试拆成多个子问题,并使得子问题的解可以求出原问题的解,这个通过子问题解求出原问题解的方程就叫做状态转移方程。根据状态转移方程自底向上得到原问题解。(附加)有时候存放子问题的解的空间可以优化得更原创 2022-03-10 00:22:58 · 632 阅读 · 0 评论 -
Leetcode数组题思路
1. 排序数组中两个数字之和链接:排序数组中两个数字之和(简单)方法一:二分查找对numbers做低到高遍历,因为已经升序排序,所以可以对每次遍历数的右侧做二分查找。但是这个方法的时间复杂度也不算小,为O(nlogn)。public int[] twoSum(int[] numbers, int target) { for(int i = 0; i< numbers.length; i++){ int low = i+1, high = numbers.length-原创 2021-12-13 01:27:02 · 566 阅读 · 0 评论 -
Leetcode链表题思路
链表链表类的题有有很多相似的题目,主要可以使用递归和迭代两种方法。同时,在做题的时候也有一些小技巧,这里暂时列出几项新。递归求解;使用DummyHead(虚拟头结点,指没有信息的头结点作为初始节点)求解;创建一个临时结点,其next指向需要保存的结点,就像交换函数中的temp一个道理;(持续更新)下面是题解。1. 找出两个链表的交点。解答:两个链表虽然在分开处不等长,但相交后等长。假设链表A相交前的长度为a,链表B相交前的长度为b,相交后的长度为c,那么链表A的总长度为a+c,链原创 2021-12-05 22:09:00 · 300 阅读 · 0 评论 -
leetcode整数题思路
001. 整数除法给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231−1 -231 <= a, b <= 231 - 1, b != 0原创 2021-10-14 22:28:00 · 373 阅读 · 0 评论