LeetCode
文章平均质量分 53
Annfan123
把握当下、
展开
-
力扣 368. 最大整除子集(Java+动态规划)
给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:answer[i] % answer[j] == 0 ,或answer[j] % answer[i] == 0如果存在多个有效解子集,返回其中任何一个均可。示例 1:输入:nums = [1,2,3]输出:[1,2]解释:[1,3] 也会被视为正确答案。示例 2:输入:nums = [1,2,4,8]原创 2021-04-23 22:14:49 · 201 阅读 · 0 评论 -
力扣 25. K 个一组翻转链表(JAVA)
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4,5], k = 3...原创 2021-04-22 21:22:27 · 375 阅读 · 0 评论 -
力扣 面试题 17.16. 按摩师(JAVA+动态规划)
一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: [2,7,9,3,1]输出: 12解释: 选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2原创 2021-04-22 16:07:52 · 217 阅读 · 0 评论 -
力扣 363. 矩形区域不超过 K 的最大数值和(JAVA)
给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。题目数据保证总会存在一个数值和不超过 k 的矩形区域。示例 1:输入:matrix = [[1,0,1],[0,-2,3]], k = 2输出:2解释:蓝色边框圈出来的矩形区域[[0, 1], [-2, 3]]的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。示例 2:输入:matrix = [[2,2,-1]], k = 3输出:3提..原创 2021-04-22 11:53:42 · 167 阅读 · 0 评论 -
力扣 91. 解码方法(JAVA+动态规划)
一条包含字母A-Z 的消息通过以下映射进行了 编码 :'A' -> 1'B' -> 2...'Z' -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:"AAJF" ,将消息分组为 (1 1 10 6)"KJF" ,将消息分组为 (11 10 6)注意,消息不能分组为(1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6" 和 "06" 在映射中并不等价。...原创 2021-04-21 11:40:18 · 145 阅读 · 0 评论 -
力扣 347. 前 K 个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例二:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105 k 的取值范围是 [1, 数组中不相同的元素的个数] 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的进阶:你所设原创 2021-04-20 21:17:36 · 190 阅读 · 0 评论 -
力扣 1536. 排布二进制网格的最少交换次数(Java)
题目:给你一个nx n的二进制网格grid,每一次操作中,你可以选择网格的相邻两行进行交换。一个符合要求的网格需要满足主对角线以上的格子全部都是 0。请你返回使网格满足要求的最少操作次数,如果无法使网格符合要求,请你返回 -1。主对角线指的是从(1, 1)到(n, n)的这些格子。示例 1:输入:grid = [[0,0,1],[1,1,0],[1,0,0]]输出:3示例 2:输入:grid = [[0,1,1,0],[0,1,1,0],[0,1,1,...原创 2021-03-18 21:53:07 · 225 阅读 · 0 评论 -
力扣 22. 链表中倒数第k个节点--Python3
题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路:快慢指针代码实现:class ListNode(): #创建链表类 def __init__(se原创 2020-09-03 20:16:59 · 168 阅读 · 0 评论 -
力扣 4. 寻找两个正序数组的中位数--Python3
题目:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5思路:1、使用归并的方法将两个有序数组合并为一个大原创 2020-06-19 11:30:50 · 1070 阅读 · 0 评论