- 博客(120)
- 收藏
- 关注
原创 [算法]LeetCode每日一题--124. 二叉树中的最大路径和(Java)
DailyChallenge124. 二叉树中的最大路径和Hard20200621Description给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [-10,9,20,null,null,15,7]输出: 42链接:https://leetcode-cn.com/problems/binary-tree-maximum-pa
2020-06-22 16:44:04
289
原创 [算法]LeetCode每日一题--10. 正则表达式匹配(Java)
DailyChallenge10. 正则表达式匹配Hard20200620Description给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p =
2020-06-20 17:28:31
341
原创 [算法]LeetCode第193场周赛202006014
第193场周赛202006141480. 一维数组的动态和难度:简单题目描述1给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])。请返回 nums的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程
2020-06-19 22:53:45
290
原创 [算法]LeetCode每日一题--125. 验证回文串(Java)
DailyChallenge125. 验证回文串Easy20200619Description给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false链接:https://leetcode-cn.com/problems/valid-palindrome
2020-06-19 22:48:06
224
原创 [算法]LeetCode每日一题--1028. 从先序遍历还原二叉树(Java)
DailyChallenge1028. 从先序遍历还原二叉树Hard20200618题目描述我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。示例 1:输入:"1-2--3--4-5--6--7"输出:[1,2
2020-06-18 18:14:23
241
原创 [算法]LeetCode每日一题--1014最佳观光组合(Java)
DailyChallenge1014. 最佳观光组合Medium20200617题目描述给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 +
2020-06-17 22:38:23
284
原创 [算法]LeetCode每日一题--297二叉树的序列化与反序列化(Java)
DailyChallenge297. 二叉树的序列化与反序列化Hard20200616题目描述序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 这与 LeetCode 目前使用的方式一致,
2020-06-16 19:42:10
267
原创 [算法]LeetCode每日一题--14最长公共前缀(Java)
DailyChallenge14最长公共前缀Easy20200614题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。Solution依次遍历每个字符串,更新最长公共前缀,用StringBuilde
2020-06-15 13:50:38
241
原创 [算法]LeetCode每日一题--70爬楼梯(Java)
DailyChallenge70. 爬楼梯Easy20200613Description假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2
2020-06-13 09:53:24
321
原创 [算法]LeetCode每日一题--15三数之和(Java)
DailyChallenge15. 三数之和20200612难度:中等题目描述1给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]Solution1排序+双指针,注意去重
2020-06-12 13:45:35
300
原创 [算法]LeetCode每日一题--739每日温度(Java)
DailyChallenge739. 每日温度20200611难度:中等题目描述1根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在
2020-06-11 14:15:56
837
原创 [算法]LeetCode第191场周赛20200531(Java)
第191场周赛202005311464. 数组中两元素的最大乘积题目描述1给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使(nums[i]-1)*(nums[j]-1)取得最大值。请你计算并返回该式的最大值。示例 1:输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12 。示例 2:输入:num
2020-06-10 12:05:13
306
原创 [算法]LeetCode第192场周赛20200607(Java)
第192场周赛202006071470. 重新排列数组难度:简单题目描述1给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。示例1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,
2020-06-10 12:00:34
209
原创 [算法]LeetCode每日一题--9回文数(Java)
DailyChallenge9. 回文数Easy20200610Description判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将
2020-06-10 10:58:34
1235
原创 [算法]LeetCode每日一题--面试题46. 把数字翻译成字符串(Java)
DailyChallenge面试题46. 把数字翻译成字符串Medium20200609Description给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
2020-06-09 18:50:52
298
原创 [算法]LeetCode每日一题--990等式方程的可满足性(Java)
DailyChallenge990. 等式方程的可满足性Medium20200608Description给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例 1:输入:["a==b","b!=a"]输出:false解释
2020-06-08 22:20:39
427
原创 [算法]LeetCode每日一题--126单词接龙 II(Java)
DailyChallenge126. 单词接龙 IIHard20200607Description给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWo
2020-06-07 22:47:02
467
原创 [算法]LeetCode每日一题--128最长连续序列
DailyChallenge128. 最长连续序列Hard20200606Description给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例一输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。Solution虑枚举数组中的每个数 xx,考虑以其为起点,不断尝试匹配 x+1, x+2, ⋯ 是否存在,假设最长匹配到了x+y,那么以x为起点的最长连续序列即为x, x+
2020-06-06 22:25:54
220
原创 [算法]LeetCode第27场双周赛20200530
第27场双周赛202005301460. 通过翻转子数组使两个数组相等题目描述1给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False 。示例 1:输入:target = [1,2,3,4], arr = [2,4,1,3]输出:
2020-06-06 22:24:18
438
原创 [算法]LeetCode每日一题--面试题29顺时针打印矩阵
DailyChallenge面试题29. 顺时针打印矩阵20200605难度:简单题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.
2020-06-05 21:51:39
128
原创 [算法]LeetCode每日一题--238除自身以外数组的乘积
DailyChallenge238除自身以外数组的乘积Medium20200604Description给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的
2020-06-04 21:49:21
209
原创 [算法]LeetCode每日一题--837新21点
DailyChallenge837. 新21点Medium20200603Description爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例1:输入:N = 10, K = 1, W = 1
2020-06-03 21:39:51
187
原创 [算法]LeetCode每日一题--面试题64. 求1+2+…+n
DailyChallenge面试题64. 求1+2+…+n20200602难度:中等题目描述求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000Solution需要实现 “当 n = 1 时终止递归” 的需求。短路效应:条件与 && 具有短
2020-06-02 21:53:32
228
原创 [算法]LeetCode每日一题--1431拥有最多糖果的孩子
DailyChallenge1431拥有最多糖果的孩子Easy202005601Description给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。
2020-06-01 20:36:36
301
原创 [算法]LeetCode每日一题--84柱状图中最大的矩形
DailyChallenge84柱状图中最大的矩形20200530难度:困难题目描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10Solution思路一暴力法遍历。对每个高度,分别向左右
2020-05-30 22:24:17
278
原创 [算法]LeetCode每日一题--198 打家劫舍
DailyChallenge198 打家劫舍Easy20200529Description你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例一:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋
2020-05-29 18:46:25
294
原创 [算法]LeetCode每日一题--394字符串解码
DailyChallenge394. 字符串解码20200528难度:中等题目描述给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2
2020-05-28 22:18:49
697
原创 [算法]LeetCode每日一题--974和可被 K 整除的子数组
974. 和可被 K 整除的子数组20200527难度:中等题目描述给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]提示:1 <= A.length <
2020-05-27 11:19:29
422
原创 [算法]LeetCode第190场周赛20200524
第190场周赛20200524202005241455 检查单词是否为句中其他单词的前缀题目描述1给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,
2020-05-25 20:44:05
250
原创 [算法]LeetCode每日一题--146LRU缓存机制
DailyChallenge206反转链表Medium20200525Description运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时
2020-05-25 20:31:33
266
原创 [Detectron2]: Ubuntu1604 配置Detectron2 cuda10.1 Driver418.56
Ubuntu1604 配置Detectron2 cuda10.1 Driver418.56apt 安装 显卡驱动(最好禁用 nouveau) 以及CUDA安装参考这篇文章添加Graphic Drivers PPA$ sudo add-apt-repository ppa:graphics-drivers/ppa$ sudo apt-get update寻找合适的驱动版本 $ ubuntu-drivers devices安装重启$ sudo apt install nvidia-$
2020-05-14 15:51:16
823
原创 [PriorityQueue]:Java中PriorityQueue的用法
Class PriorityQueuejava.util.PriorityQueue不指定Comparator时默认为最小堆,通过传入自定义的Comparator函数可以实现大顶堆。PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>(); //小顶堆,默认容量为11PriorityQueue<...
2020-05-05 17:29:01
9609
原创 [Map]:Java中Map及Map.Entry讲解
Map和Map.Entry都是接口。Interface Map<K,V>Interface Map.Entry<K,V>使用例子,参考 Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value1"); map.pu...
2020-05-04 16:07:14
338
原创 [Iterator]:Java中迭代器iterator的用法
使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。使用next()获得序列中的下一个元素。使用hasNext()检查序列中是否还有元素。使用remove()将迭代器新返回的元素删除。public class IteratorDemo { public static void main(Strin...
2020-05-04 15:26:38
357
原创 [String]:String.valueOf()用法
valueOf(boolean b);valueOf(char c);valueOf(char[] data);valueOf(char[] data, int offset, int count);valueOf(double d);valueOf(float f);valueOf(int i);valueOf(long l);valueOf(Object obj);都是把相...
2020-05-03 22:25:25
916
原创 [List]:List. toArray()方法的使用
Object[] toArray()返回一个数组,该数组按正确顺序(从第一个元素到最后一个元素)包含此列表中的所有元素。返回的数组将是“安全的”,因为此列表不维护对它的引用。(换句话说,即使此列表由数组支持,此方法也必须分配新数组)。因此,调用者可以自由地修改返回的数组。 T[] toArray(T[] a)返回一个数组,该数组按正确的顺序(从第一个元素到最后一个元素)包含此列表中的所有...
2020-05-03 22:15:18
1131
原创 [Git]: 取消commit及修改git默认编辑器为vim
修改git默认编辑器为vim修改~/.gitconfig [core] editor=vim修补commit信息$ git commit -m 'initial commit'$ git add forgotten_file$ git commit --amend取消上一次comiitgit reset HEAD CONTRIBUTING.md# 上一次更改g...
2020-05-03 16:02:04
536
原创 [Anaconda]:Managing environments conda常用命令
Creating an environment with commandscreate an environment with a specific version of Python and multiple packages:conda create -n myenv python=3.6 scipy=0.15.0 astroid babelhelp:conda create --he...
2020-05-01 15:50:21
464
1
原创 [Git]:GitHub上fork项目同步
GitHub上fork项目同步fork项目原作者更新如何同步?以facebookresearch/detectron2为例:添加一个upstream分支git remote add upstream https://github.com/facebookresearch/detectron2.git查看状态确认git remote -v从上游仓库 fetch 分支和提交点git ...
2020-05-01 12:06:20
252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅