算法
文章平均质量分 66
Lor :)
这个作者很懒,什么都没留下…
展开
-
【算法】实现LRU缓存机制
题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回-1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除原创 2021-10-17 00:40:35 · 211 阅读 · 0 评论 -
【算法】最大子矩阵(dp)(详细注释)
题目给定一个正整数、负整数和 0 组成的 N × M 矩阵,编写代码找出元素总和最大的子矩阵。返回一个数组 [r1, c1, r2, c2],其中 r1, c1 分别代表子矩阵左上角的行号和列号,r2, c2 分别代表右下角的行号和列号。若有多个满足条件的子矩阵,返回任意一个均可。注意:本题相对书上原题稍作改动示例:输入:[[-1,0],[0,-1]]输出:[0,1,0,1]**解释:**输入中标粗的元素即为输出所表示的矩阵说明:1 <= matrix.length,原创 2021-10-10 11:23:16 · 459 阅读 · 0 评论 -
【算法】 K 站中转内最便宜的航班 (【记忆化dfs】【dp】)
有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pricei 抵达 toi。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。 如果不存在这样的路线,则输出 -1。示例 1:输入:n = 3, edges = [[0,1,100],[1,2原创 2021-10-07 17:29:14 · 181 阅读 · 0 评论 -
【算法】网络延迟时间 (Dijkstra)
题目有 n 个网络节点,标记为 1 到 n。给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。现在,从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1 。示例 1:输入:times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2输出:2示例 2:输入:t原创 2021-10-06 23:25:35 · 611 阅读 · 0 评论 -
【算法】通过删除字母匹配到字典里最长单词 (【双指针】,【排序 + 双指针】,【动态规划】)
题目给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”示例 2:输入:s = “abpcplea”, dictionary = [“a”,“b”,原创 2021-10-05 18:44:26 · 330 阅读 · 0 评论 -
【算法】矩阵中的最长递增路径 (记忆化dfs)
题目给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。示例 1:输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]输出:4解释:最长递增路径为 [1, 2, 6, 9]。示例 2:输入:matrix = [[3,4,5],[3,2,6],[2,2,1]]输出:4解释:最长递增路径是 [3, 4, 5, 6]。注意原创 2021-10-05 16:15:38 · 364 阅读 · 0 评论 -
【算法】实现indexOf()函数 (KMP)
题目实现 indexOf() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = “h原创 2021-10-05 13:16:08 · 702 阅读 · 0 评论 -
【算法】单词搜索 (DFS + 回溯)
单词搜索题目给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”输出:true原创 2021-10-05 12:45:53 · 279 阅读 · 0 评论 -
八大排序算法
分类选择排序public static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int min = arr[i]; int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (min > arr[j]) {原创 2021-09-07 13:49:08 · 41 阅读 · 0 评论