
Leetcode
RAYFUXK
这个作者很懒,什么都没留下…
展开
-
LeetCode 面试题 17.06. 2出现的次数
面试题 17.06. 2出现的次数12345 转换为 nums, 所以,nums={1, 2, 3, 4, 5}dp[1] = 5 的2的数量;dp[2] = 45 的2的数量;dp[3] = 345 的2的数量;dp[4] = 2345 的2的数量;dp[5] = 13245 的2的数量;第 i 位的数字有以下几种情况:nums[i]...原创 2020-03-26 16:13:07 · 439 阅读 · 0 评论 -
LeetCode 365. 水壶问题(Java 解法)
365 水壶问题广度优先搜索我们要用一种方式来表示当前两个水壶的状态,这里可以自己选择,比如利用字符串,把两个水壶当前的水量用下划线拼接起来。我这选择的构造一个新的类 Pairprivate class Pair { int x; int y; Pair(int x, int y) { this.x = x; this.y = y;...原创 2020-03-21 15:49:53 · 607 阅读 · 0 评论 -
第43周 ARTS 2019 08 11
Algorithm:638. 大礼包Review: Adaptive Collaborative Topic Modeling for Online RecommendationTip/Tech: khan算法完成拓扑排序Share:美国的小孩更加想成为网红原创 2019-08-11 15:53:05 · 226 阅读 · 0 评论 -
ARTS 2019 05 12 (30)
ARTSAlgorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Tech:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章;AlgorithmReviewTip/Tech分桶法来进行对不同的数组信息进行分类,我感觉这个很适合在答案需要由大到小的情况下,各种的分类的情况进行讨论。顺便了解了一下桶排序的思想...原创 2019-05-12 10:41:21 · 181 阅读 · 0 评论 -
ARTS 2019 04 14 (26)
ARTSAlgorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Tech:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章;Algorithm242. 有效的字母异位词https://leetcode-cn.com/problems/valid-anagram/这题其实就是哈希的思想,用个大小为26的数组...原创 2019-04-14 16:47:22 · 195 阅读 · 0 评论 -
刷一题Leetcode:Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.Credits: Special thanks to @ts for adding this problem and creating all test原创 2015-08-31 16:51:35 · 594 阅读 · 0 评论 -
LeetCode 146. LRU缓存机制(Java版)
题目146. LRU缓存机制题解1 直接用LinkedHashMap来完成class LRUCache { private LinkedHashMap<Integer, Integer> map; public LRUCache(int capacity) { map = new LinkedHashMap<Integer, Inte...原创 2019-12-07 18:43:08 · 236 阅读 · 0 评论 -
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(Java版)
题目34. 在排序数组中查找元素的第一个和最后一个位置https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/题解二分查找先用二分查找找到目标值第一个所在的位置,然后再用二分查找,找到目标值最后一个所在位置。第一个所在值的查找逻辑:1 如果nums[mid] 等...原创 2019-12-03 23:13:19 · 406 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表(Java版)
题目25. K 个一组翻转链表https://leetcode-cn.com/problems/reverse-nodes-in-k-group/题解我的指针的做法我是喜欢用迭代来进行翻转的所以我这里还是用了迭代的思想。先找到需要反转的链表,然后翻转,然后在进行拼接。看起来很简单,我们我们先遍历需要反转的链表段子,也就是先走过k个ListNode。然后用几个变量先记录下当前的链表的情...原创 2019-12-03 18:58:57 · 393 阅读 · 0 评论 -
LeetCode 735. 行星碰撞 (Java版)
题目735. 行星碰撞https://leetcode-cn.com/problems/asteroid-collision/题解栈的思想解决如果栈为空,那么直接入栈。当前的遍历到的数值大于0,那么直接入栈。如果为负数:栈顶为负数,入栈栈顶为正数,判断和当前数字的绝对值比较,绝对值大,那么整数出栈,且判断栈是否为空,为空就入栈,且结束。栈顶为正数,且比当前数字的绝对值小...原创 2019-12-02 00:32:02 · 457 阅读 · 0 评论 -
LeetCode 10. 正则表达式匹配(Java 版本)
题目10. 正则表达式匹配题解回溯思想1 因为这题目中提到:所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。所以这题就简单了。1 判断是否当前的字符是否相等或者 p 的当前字符是 .若为true:继续判断 p 的后一个字符是否为 *:是 *:保持当前的p游标,而且接着判断s的下一个字符。不是 *:保持当前的p游标,而且接着判断s的下两个字符(其实忽略当前...原创 2019-12-01 13:15:34 · 257 阅读 · 0 评论 -
LeetCode 31. 下一个排列(Java版)
题目31. 下一个排列题解数学家 Narayana Pandita 提出的思想1 初始化一个index,从数组倒数第二个元素开始寻找第一个nums[index] < nums[index + 1],也就是寻找递减序列的前一个后一个元素,比如,一下这个数组,那么这个nums[index] = 2,index也就是1。1 2 7 6 5 42 判断index是为-1如果是-1...原创 2019-12-01 01:00:21 · 347 阅读 · 0 评论 -
LeetCode 33. 搜索旋转排序数组(Java版)
题目33. 搜索旋转排序数组题解题目的重点的就是有点被旋转了,而且时间复杂度O(logN)O(logN)O(logN),所以这里需要运用的就是而二分思想的。我们要知道数组的最小值所在的地方,一般来说在左半边还是右半边。举个例子1 最小值在左半边low = 0, high = len - 1,所以 high 是 8mid = low + ((high - low) >>...原创 2019-11-28 23:15:30 · 260 阅读 · 0 评论 -
LeetCode 238. 除自身以外数组的乘积(Java版)
题目238. 除自身以外数组的乘积题解构造两个数组left和rightleft[i] = nums[0] * nums[1] *…… * nums[i-2] * nums[i-1]right[i] = nums[i + 1] * nums[i + 2] *…… * nums[len-2] * nums[len-1]所以就有以下的公式:left[i] = left[i - 1]...原创 2019-11-28 18:36:20 · 239 阅读 · 0 评论 -
LeetCode 53 最大子序和(Java版)
题目53. 最大子序和题解其实这个描述不够准确,应该是最大子数组和才对1 动态规划这个需要懂得一个技巧,如何确定这个是不是一个新的子数组的开头,就是看前一个位置的值是否是正值,如果是正值,那么对于当前的值就是有增加效果的。如果前面一个值是负的,那么当前值就是最大值就是nums[i]如果前面一个值是正的,那么当前的最大值就是last + nums[i]public int maxSu...原创 2019-11-28 14:14:45 · 248 阅读 · 0 评论 -
LeetCode 题解 16 最接近的三数之和(Java版)
题目16. 最接近的三数之和题解一、双指针思想1 首先进行数组排序,时间复杂度O(nlogN)O(nlogN)O(nlogN),然后设置一个dis = Integer.MAX_VALUE2 在 nums 数组进行遍历,每遍历一个元素,利用该元素的下标i,得到一个固定值 nums[i]3 在创建一个前指针 start = i + 1, 再创建一个后指针 end = nums.lengt...原创 2019-11-23 21:04:19 · 193 阅读 · 0 评论 -
第56周 ARTS 2019 11 10
A: 384. 打乱数组R: Java 8 HashMap Implementation and PerformanceT: B+树S: 无人机找小男孩原创 2019-11-11 21:37:11 · 266 阅读 · 0 评论 -
第53周 ARTS 2019 10 20
Algorithm:378. 有序矩阵中第K小的元素Review:Tip/Tech:Share:Algorithm378. 有序矩阵中第K小的元素https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/因为这题,这周一次性做了六道和这个相关的题目,简直了。这种第K个小的题目,一般来说,最简...原创 2019-10-24 02:04:27 · 222 阅读 · 0 评论 -
第52周 ARTS 2019 10 13
Algorithm:1046. 最后一块石头的重量Review:反转字符串Tip/Tech:单调栈Share:指数基金想CDO一样是泡沫Algorithm1184. 公交站间的距离https://leetcode-cn.com/problems/distance-between-bus-stops/class Solution { public int distance...原创 2019-10-19 10:01:50 · 388 阅读 · 0 评论 -
LeetCode 236. 二叉树的最近公共祖先 (Java解法)
链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree注意这里的问题其实就告诉了做题的人,这里既没有父亲节点,也没有二叉搜索树的性质。LCA的问题,一般来说就是几种套路1 塑造父亲节点一般来说,现确定有没有父节点的这个附加功能,如果有父节点,那么就是两个链表,寻找公共点的问题。如果没有父亲节...原创 2019-10-13 17:12:06 · 332 阅读 · 0 评论 -
ARTS 2019 01 26 (15)
ARTSAlgorithm:每周至少做一个leetcode的算法题;Review:阅读并点评至少一篇英文技术文章;Tip/Tech:学习至少一个技术技巧;Share:分享一篇有观点和思考的技术文章;AlgorithmReviewTip/TechShare...原创 2019-01-27 04:17:30 · 253 阅读 · 0 评论 -
第41周 ARTS 2019 07 28
Algorithm:60. 第k个排列Review: Item-Based Collaborative Filtering RecommendationAlgorithmsTip/Tech:快速排序的非递归实现Share:Algorithmhttps://leetcode-cn.com/problems/permutation-sequence/60. 第k个排列这题,真的,原...原创 2019-07-27 19:07:19 · 251 阅读 · 0 评论 -
172. 阶乘后的零 Java解法
https://leetcode-cn.com/problems/factorial-trailing-zeroes/172. 阶乘后的零这题要完成其实要知道一个很巧妙的思想,就是阶乘里面,后面的几个零是由什么来决定的。只有知道了这个,才能够在足够小的时间复杂度中得到答案。其实乘法里面,末尾有0意味着因子中肯定有10,而10的质因子,就是5 和 2,所以,我们要看末尾有没有5,为啥直接看...原创 2019-07-27 11:23:02 · 172 阅读 · 0 评论 -
第42周 ARTS 2019 08 04
Algorithm:1048. 最长字符串链;Review: 一步一步的解决打家劫舍3问题;Tip/Tech:二分搜索Share:机器中的达尔文翻译 2019-08-04 13:32:01 · 190 阅读 · 0 评论 -
第40周 2019 07 21
Algorithm:164. 最大间距Review:Tip/Tech: 基基数排序Share:五对夫妇为CRISPR婴儿排队以避免耳聋Algorithmhttps://leetcode-cn.com/problems/maximum-gap/164. 最大间距这个题目真的,如果没哟线性时间这个要求啊,那么是无比的简单的,直接一个排序就搞定了,但是不得不说,这个出题不严谨,相当于是...原创 2019-07-21 00:41:24 · 231 阅读 · 0 评论 -
101. 对称二叉树 Java解法
101. 对称二叉树https://leetcode-cn.com/problems/symmetric-tree/递归法:class Solution { public boolean isSymmetric(TreeNode root) { return isMirror(root, root); } public boolean isMirro...原创 2019-07-19 06:24:06 · 346 阅读 · 0 评论 -
226. 翻转二叉树 Java解法
226. 翻转二叉树https://leetcode-cn.com/problems/invert-binary-tree/原理上来说就是个先序遍历:class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) { return root; ...原创 2019-07-19 04:43:57 · 354 阅读 · 0 评论 -
ARTS 2019 07 07 (38)
Algorithm:13. 罗马数字转整数Review: 谨慎选择你的工具Tip/Tech: 基于用户的协同过滤算法。Share: 我不希望变成全栈开发者Algorithm13. 罗马数字转整数其实思想是非常简单的,具体到就是从右到左,如果当前的元素对应的数字大于等于它的右边的字符对应的数字,那么就在原来的结果上加上当前的字符对应的数字;如果比右边的元素对应的数字小了,那么就...原创 2019-07-07 13:35:02 · 200 阅读 · 0 评论 -
ARTS 2019 07 14 (39)
Algorithm:4. 寻找两个有序数组的中位数Review: 用户画像Tip/Tech: 余弦相似度,pearson相似度Share: 宗教与科学——爱因斯坦(节选自《我的世界观》)Algorithm4. 寻找两个有序数组的中位数最简单的就是用最简单的,把两个数组分别抽出然后排成一个排好序的数组,然后根据中位数的定义,直接根据中间的索引值得到中位数的值。如果上面这么说明有些...原创 2019-07-14 21:55:38 · 165 阅读 · 0 评论 -
ARTS 2019 06 30 (37)
Algorithm:494. 目标和Review: 在责怪别人之前,先检查自己的代码Tip/Tech: 归并排序Share: 隐形天花板AlgorithmReviewTip/TechShare原创 2019-06-29 19:54:31 · 190 阅读 · 0 评论 -
240. 搜索二维矩阵 II Java解法
示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]首先,不得不说这题和他的第一个版本的思想上是有点像的,但是又不是完全一样,因为第一版本中我们可以吧取值的范围缩小到一行当中,但是在...原创 2019-06-27 21:26:48 · 300 阅读 · 0 评论 -
233. 数字 1 的个数 Java解法
233. 数字 1 的个数https://leetcode-cn.com/problems/number-of-digit-one/这题同时也是:《剑指Offer 第二版》第43题这题有个最简单的暴力的解法,就是遍历每个数字,然后再遍历每个数字的,如果是1就进行累加。但是这样的时间复杂度太高了,这样我们就要用分段的思想来解决这个问题,再说思想的是,我们先来看看几个例子,来看看分段思想是如...原创 2019-07-28 15:43:00 · 261 阅读 · 0 评论 -
LeeCode 第 342 .4的幂 Java解法
342. 4的幂https://leetcode-cn.com/problems/power-of-four/这题其实如果先不管进阶,还是蛮简单的,首先我们只要保证除以4余数一直为0,然后不断的把结果继续赋值到n,如果能到1,那么就是4的幂次方了。class Solution { public boolean isPowerOfFour(int num) { if ...原创 2019-07-28 16:27:33 · 207 阅读 · 0 评论 -
LeetCode 第3题 无重复字符的最长子串(Java)
3. 无重复字符的最长子串https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/最初始的解法方法就是遍历暴力每个元素,然后以那个元素为起始点,然后进行判断是否出现了重复元素,这样时间的复杂度就是O(n2)O(n^2)O(n2),这样的时间复杂度有点高,基本上已经预定了时间超出限制。所以我...原创 2019-07-28 17:13:09 · 155 阅读 · 0 评论 -
LeetCode 第674题 最长连续递增序列(Java解法)
给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:数组长度不会超...原创 2019-10-08 22:16:16 · 440 阅读 · 0 评论 -
第50周 ARTS 2019 09 29
Algorithm:1046. 最后一块石头的重量Review: Tip/Tech:Share:原创 2019-09-30 13:40:34 · 181 阅读 · 0 评论 -
第49周 ARTS 2019 09 22
Algorithm:523. 连续的子数组和Review: 鸿蒙OS——安卓杀手Tip/Tech:并查集Share:印度会禁止使用部分一次性塑料原创 2019-09-22 08:53:17 · 202 阅读 · 0 评论 -
第48周 ARTS 2019 09 15
Algorithm:257 二叉树的所有路径Review: G1垃圾收集器入门Tip/Tech:三路快排Share:剑桥博士:为何中国肯下血本在西方不做的亏本买卖上原创 2019-09-14 09:51:16 · 220 阅读 · 0 评论 -
第47周 ARTS 2019 09 08
Algorithm:5067. 统计只含单一字母的子串Review: Synchronization and Object LockingTip/Tech:快排的非递归实现Share:爱尔兰青少年因从海洋中去除微塑料而获得谷歌科学奖Algorithm5067. 统计只含单一字母的子串https://leetcode-cn.com/contest/biweekly-contest-8...原创 2019-09-08 14:11:51 · 286 阅读 · 0 评论 -
第46周 ARTS 2019 09 01
Algorithm:75. 颜色分类Review: Synchronization and Object LockingTip/Tech:快排的非递归实现Share:爱尔兰青少年因从海洋中去除微塑料而获得谷歌科学奖Algorithm174. 地下城游戏https://leetcode-cn.com/problems/dungeon-game/其实这题一看就晓得要用动态规划了,但...原创 2019-09-01 13:50:35 · 187 阅读 · 0 评论