LeetCode
文章平均质量分 93
DEUSJIN
这个作者很懒,什么都没留下…
展开
-
乘积最大子数组
题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。思路:动态规划dp[i][1]为以nums[i]为结尾的最大乘积。本题与最大子序和不同点在于负负得正,若nums[i]>0最大值乘nums[i]变最大值最小值乘nums[i]变最小值若nums[i]<0则相反注意:若nums[i]>0,而最大值小于零,则最大值变为nums[i],其他同理。class Solution { public原创 2020-05-18 20:44:26 · 179 阅读 · 0 评论 -
非常易懂的全排列
题目:给定一个 没有重复 数字的序列,返回其所有可能的全排列。输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)这种分叉选择的题用回溯是非常好的数据结构: visited数组、nums数组、List<List、List思路: dfs,因为使用dfs可以全局保护...原创 2020-04-25 11:32:25 · 185 阅读 · 0 评论 -
包 你 理 解 的KMP算法
开头:之前已经看过好几遍 KMP 了,但每次一想就又忘了,可恶!!!所以今天我就写一个 炒 鸡 详 细 的 KMP 的思路过程,这我要再能忘真就白痴了。废话不多说,开始我的表演:...原创 2020-04-14 23:05:27 · 128 阅读 · 0 评论 -
Rotate matrix(翻转矩阵)
题目:Given an image represented by an N x N matrix, where each pixel in the image is 4 bytes, write a method to rotate the image by 90 degrees. Can you do this in place?来源:力扣(LeetCode)法一:新建一个矩阵,利用(i...原创 2020-04-07 12:14:11 · 690 阅读 · 0 评论 -
编辑距离 Edit Distance(difficult)(Dynamic Programming)
Problem:Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.You have the following 3 operations permitted on a word:Insert a characterDelete a...原创 2020-04-06 11:11:09 · 106 阅读 · 0 评论 -
单词的压缩编码(中等)字典树/前缀树/Trie数
题目:给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功对给定单词列表进...原创 2020-03-30 13:49:08 · 209 阅读 · 0 评论 -
天际线问题(困难)专题解决思路
题目:城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。现在,假设您获得了城市风光照片(图A)上显示的所有建筑物的位置和高度,请编写一个程序以输出由这些建筑物形成的天际线(图B)。每个建筑物的几何信息用三元组 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分别是第 i 座建筑物左右边缘的 x 坐标,Hi 是其高度。可以保证 0 ≤ Li, Ri ≤ INT_MAX, 0 ...原创 2020-02-19 19:55:48 · 2281 阅读 · 0 评论 -
寻找两个有序数组的中位数(更新一种解决方案)
题目见https://blog.csdn.net/qq_35684046/article/details/104330155法一:我们用两个指针i,j,分别指向n1与n2遍历(len1+len2+1)/2次后跳出循环。pre = now;(1)如果i<n1.lenth&&(j>=n2.lenth||n1[i]>n2[i]),令now = n1[i++]。...原创 2020-02-18 10:40:49 · 321 阅读 · 0 评论 -
合并K个排序链表
题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)法一:排序法二:与归并排序的merge过程相似,依次选取每一个链表的最小值中的最小值直至链...原创 2020-02-18 09:43:26 · 151 阅读 · 0 评论 -
寻找两个有序数组的中位数(困难)非常酷的解决方案!
题目:给定两个大小为 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 ...原创 2020-02-15 17:23:48 · 194 阅读 · 0 评论 -
面试题36. 二叉搜索树与双向链表(分治)(递归)
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head...原创 2020-02-14 12:58:36 · 532 阅读 · 0 评论