![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 92
leoma2012
这个作者很懒,什么都没留下…
展开
-
leetcode 45@月落乌啼
自己写出个困难的题(虽然感觉也不困难),真是内牛满面解题思路贪心算法,每次都走最长的距离,然后看当前这一个的下一个与最远的一个之间能够到达的最远距离,记录该坐标。依次类推,直至到达终点,>=length-1即可。java代码(9ms)class Solution { public int jump(int[] nums) { int count = 0; ...原创 2019-01-18 16:38:17 · 109 阅读 · 0 评论 -
leetcode 4:寻找两个有序数组的中位数(二分法)
题目大意给定两个大小为 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 ...转载 2019-07-26 09:58:33 · 657 阅读 · 2 评论 -
柱状图中的最大矩形
疑惑点解答矩形高度即是当前弹出坐标对应的高度。矩形的宽度是i-1-peek() 这是因为栈中的元素(数组坐标)不是连续的,当前的宽度是向左延伸、向右延伸。向右延伸最多到当前i,向左延伸最多到第一个小于等于他的坐标,即弹出它之后的下一个栈顶。第一种class Solution { public int largestRectangleArea(int[] heights) {...原创 2019-06-26 10:35:08 · 493 阅读 · 0 评论 -
leetcode 23 合并k个链表
解题思路按照归并的思想,和归并排序类似,不断地合并左右2边即可。代码如下(java)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */cla...原创 2019-05-20 14:38:18 · 164 阅读 · 0 评论 -
leetcode 42 接雨水
解题思路想出来的方法有点笨,只打败了5%的人。。主要思路是从两侧开始遍历,一层一层的累计。当两侧均不为0时,计算这一层中的告诉<=0的柱子的数量,然后加到结果中,然后将每一个柱子的高度都减1;直到数组中大于0的数字的数量不超过2的时候停止遍历。、这样做会遍历数组很多次,所以效率很低,想一下优化的方法、代码class Solution { int cnt = 0; ...原创 2019-05-19 16:48:20 · 199 阅读 · 1 评论 -
LEETCODE 621任务调度器
解题思路采用用的比较多的统计词频的做法。先对char数组中的字频进行统计,然后排序。比如AAABBCC这种串且n=2,可以使A _ _ A _ _ A _ _,然后把BC分别插进去。网上有很多讨论一组空格可以直接放进去的博客,次数就不说了。着重记录一下以下情况如(1)AAABBCCDDEE,n=2;(2)或者AABBCC,n=1(这种是maxCnt>n的情况)即由最大词频空出的...原创 2019-05-19 15:37:34 · 419 阅读 · 0 评论 -
64 最小路径和(二维动态规划优化:压缩法)
讲的很清晰转载自https://blog.csdn.net/xuchonghao/article/details/80820700转载 2019-04-15 14:14:44 · 233 阅读 · 0 评论 -
leetcode 213 打家劫舍
题目大意你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 :输入: [2,3,2]输出: 3解释:...原创 2019-04-16 20:11:45 · 167 阅读 · 0 评论 -
[Leetcode-142] Linked List Cycle II(链表有环详细分析)
转自http://blog.csdn.net/xy010902100449/article/details/48981185写的很详细,就不自己写了转载 2019-03-15 09:47:27 · 132 阅读 · 0 评论 -
leetcode1之两数之和
解题思路 利用字典或者哈希表分别存储值和下标,将target分解成 nums[i]+(target-nums[i])如此一来,就可以一次遍历就可以找到结果代码(PYTHON)class Solution: def twoSum(self, nums, target): """ :type nums: List[int] ...原创 2019-02-08 21:16:13 · 102 阅读 · 0 评论 -
leetcode 953 验证外星人词典
题目大意某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。示例 1:输入:words = [“hello”,“leetcode”], order = “hlabcdefgijk...原创 2019-02-15 16:58:07 · 197 阅读 · 0 评论 -
leetcode 784 字母大小写全排列
回溯法class Solution: def letterCasePermutation(self, S): """ :type S: str :rtype: List[str] """ ans = [] sub_ans = "" index = 0 self....原创 2019-02-04 23:42:53 · 212 阅读 · 0 评论 -
leetcode357
可以使用动态规划做代码如下class Solution: def countNumbersWithUniqueDigits(self, n): """ :type n: int :rtype: int """ if n==0: return 1 if n==1: ..原创 2019-02-04 14:52:28 · 217 阅读 · 0 评论 -
leetcode 51 N皇后问题@月落乌啼OEZ
8皇后问题描述 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机...原创 2019-02-04 20:52:31 · 218 阅读 · 0 评论 -
leetcode 75题【优美的写法】
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计...原创 2019-01-16 15:16:33 · 211 阅读 · 0 评论 -
二叉搜索树转双向链表
题目要求输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路 二叉搜索树的中序遍历是从大到小排列的,那么只要设置一个 pre节点 来保存开头,按照中序遍历的方式把树组装成双向链表就可以了。但是这样做完以后,pre节点 就到达了双向链表的末尾位置,需要再移回最左侧,所以可以采取中序遍历的相反顺序,即 右==>根=...原创 2019-08-17 15:27:15 · 117 阅读 · 0 评论