随笔分类 - 数据结构与算法
摘要:这道题可以看成多起点多终点的最短路径问题。这种情况我们可以使用BFS(广度优先搜索),把起点全部push到队列里面去,下一步走到终点上的放就找到路径了,就是一个BFS找最短路径的问题。前提是知道哪部分是起点,哪部分是终点。
阅读全文
摘要:回溯+递归来解决八皇后问题
阅读全文
摘要:还是用回溯法,定义一个二维数组存储访问标记,在对任意位置进行深度优先搜索时,先将当前位置为已访问,以避免重复遍历,在所有的可能都搜索完成后,再改回当前位置为未访问,防止干扰其它位置搜索当前位置。
阅读全文
摘要:用回溯方法解决组合问题,类似排列,排列回溯的是交换的位置,而组合回溯的是否把当前的数字加入结果中。
阅读全文
摘要:使用回溯法解决此问题,对于每一个当前位置i,我们可以将其与之后的任意位置交换,然后继续处理位置i+1,直到处理到最后一位。为了防止我们每次遍历时都要新建一个子数组储存位置i之前已经交换好的数字,我们就利用回溯法,只对原数组进行修改,在递归完成后再修改回来。
阅读全文
摘要:逆向思维,假设海水涨潮的时候,太平洋和大西洋的水能漫到陆地的最高点是多少,分别记录下来。假设水在到达最高点后不在继续漫了。这时分别记录下太平洋和大西洋的水能到达的位置。再取他们公共的部分就是答案了。
阅读全文
摘要:每个人看作是一个点,每个人与他人的联系看作是一条线,即n条线,包括自己与自己的关系。这样每个节点最多n条边最少1条边。
阅读全文
摘要:搜索类的题,这题可以用深度优先搜索,定义一个主函数和一个辅函数,主函数用于遍历所有的搜索位置,判断是否可以开始搜索,辅函数则负责深度优先搜索的递归调用。
阅读全文
摘要:号称leetcode守门员的题。中位数可以来自于同一个数组,也可以来自于两个数组,可以是一个数,也可以是两个数。
阅读全文
摘要:题目中是有序数组,每个元素出现2次,假设数组索引i是偶数,如果nums[i] == nums[i+1],说明那个单独出现的元素在i的右边;反之在i的左边
阅读全文
摘要:二分查找,循环结束条件和内部比较时到底加不加等号老是分不清,每次都得通过调试
阅读全文
摘要:即使数组被旋转过,仍可以使用数组的递增性,使用二分查找来解决此问题。leetcode 81. Search in Rotated Sorted Array II 搜索旋转排序数组 II(中等)
阅读全文
摘要:使用二分查找找左右区间。lower_bound返回的是开始的第一个满足条件的位置,upper_bound返回的是第一个不满足条件的位置。所以当两个返回值相等的时候表示没有找到,找到了需要返回的是{left, right - 1}
阅读全文
摘要:了解二分法和牛顿迭代法两个思路来求方程根
阅读全文
摘要:使用常规思路桶排序解决或根据题目限定条件的另一种思路,leetcode 75. Sort Colors 颜色分类
阅读全文
摘要:用桶排序来解决这个问题。使用hashmap来统计字符出现的频率,统计完再构建一个以频率为key的顺序队列,然后再出队列,出队列的时候把字符按频数追加到字符串返回值上。
阅读全文
摘要:本题重点理解桶排序的思路,还有就是学习PriorityQueue类型,以前都没用过。leetcode 347. Top K Frequent Elements 前 K 个高频元素
阅读全文
摘要:理解为什么用快速选择来解决这个问题是关键,重点是要理解快速排序
阅读全文
摘要:一、题目大意 https://leetcode.cn/problems/longest-word-in-dictionary-through-deleting 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中
阅读全文
摘要:一、题目大意 https://leetcode.cn/problems/linked-list-cycle-ii/ 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为
阅读全文

浙公网安备 33010602011771号