自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SnailTyan

纸上得来终觉浅,绝知此事要躬行。

原创 深度学习论文翻译

Deep Learning Papers TranslationGithub地址:https://github.com/SnailTyan/deep-learning-papers-translationImage ClassificationAlexNet ImageNet Classification with Deep Convolutional Neural Netwo...

2018-01-25 21:29:53 7263 8

原创 Managing Supply and Demand Balance Through Machine Learning-笔记

外卖相关

2022-08-10 19:30:00 215

原创 Leetcode 93. Restore IP Addresses

Restore IP Addresses

2022-08-10 19:06:45 51

原创 Leetcode 1417. Reformat The String

Reformat The String

2022-08-10 19:05:53 25

原创 Leetcode 575. Distribute Candies

Distribute Candies

2022-08-10 19:04:47 29

原创 Leetcode 1103. Distribute Candies to People

Distribute Candies to People

2022-08-10 19:03:28 27

原创 即时配送的ETA问题之亿级样本特征构造实践-笔记

外卖相关

2022-06-14 18:08:26 119

原创 深度学习在美团配送ETA预估中的探索与实践-笔记

外卖相关

2022-06-14 18:01:23 190

原创 机器学习在美团配送系统的实践:用技术还原真实世界-笔记

阅读笔记

2022-06-10 17:29:47 295 1

原创 配送交付时间轻量级预估实践-笔记

阅读笔记

2022-06-10 17:28:49 61

原创 美团智能配送系统的运筹优化实战-笔记

阅读笔记

2022-06-10 17:26:57 583

原创 即时配送的订单分配策略:从建模和优化-笔记

阅读笔记

2022-06-10 17:20:17 578

原创 Leetcode 2078. Two Furthest Houses With Different Colors

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,两层循环遍历,O(N^2)。Version 1class Solution: def maxDistance(self, colors: List[int]) -> int: distance = 0 length = len(colors)

2022-05-08 18:26:26 174

原创 Leetcode 2016. Maximum Difference Between Increasing Elements

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,两层循环遍历,O(N^2)。Version 1class Solution: def maximumDifference(self, nums: List[int]) -> int: length = len(nums) diff = -1

2022-05-08 18:24:52 98

原创 Leetcode 1528. Shuffle String

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,根据要求,按顺序将字母填到对应位置即可。Version 1class Solution: def restoreString(self, s: str, indices: List[int]) -> str: res = ['0'] * len(s)

2022-05-08 18:23:46 94

原创 Leetcode 1323. Maximum 69 Number

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,从左到右,找到第一个6,将其改为9,返回更改之后的数字。Version 1class Solution: def maximum69Number (self, num: int) -> int: digits = list(str(num))

2022-05-08 18:21:49 199

原创 Leetcode 1464. Maximum Product of Two Elements in an Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,两层循环遍历,O(N^2)。Version 1class Solution: def maxProduct(self, nums: List[int]) -> int: product = 0 length = len(nums)

2022-05-08 18:19:40 91

原创 Leetcode 567. Permutation in String

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,此题与leetcode 438非常类似,思路是一样的。判断s2是否包含s1的变换,可以采用字典的方法,即每个字母的个数及类型相等。先统计字符串s1的字母个数并记录其长度在stat中,遍历字符串s2,如果字母在stat中,则将其记录到字典subs中,否则重置subs,当subs['length']

2021-08-27 15:15:51 141

原创 Leetcode 438. Find All Anagrams in a String

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,判断两个字符串是否是Anagrams,可以采用字典的方法,即每个字母的个数及类型相等。先统计字符串p的字母个数并记录其长度在stat中,遍历字符串s,如果字母在stat中,则将其记录到字典subs中,否则重置subs,当subs['length'] = stat['length']时,比较二者是

2021-08-27 15:14:55 114

原创 Leetcode 540. Single Element in a Sorted Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用类似于二分查找的方式寻找单个元素,首先计算中间位置的索引mid,如果mid为奇数,说明数组左半部分有偶数个元素(索引从0开始),比较nums[mid]与其左边的元素nums[mid-1],如果二者相等,则表明左半部分一定不存在单个元素,因此left=mid+1,如果二者不相等,则其一定等于右

2021-08-27 15:14:13 70

原创 Leetcode 1671. Minimum Number of Removals to Make Mountain Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,分别以数组中的元素作为中心点,在左右两侧分别求最长递增子序列,根据左右两侧的最长递增子序列的长度求出山脉的长度,则要删除的元素个数为数组长度减去最长的山脉长度,速度太慢。Version 2在Version 1的基础上进行了优化,分别求出数组正序和逆序各个位置的最长递增子序列,然后跟Version

2021-08-27 15:13:24 55

原创 Leetcode 941. Valid Mountain Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,通过up和down分别表示山脉的上下过程,比较数组前后两个数,如果相等,直接返回False,如果前者大于后者,没出现过下山down=False,则将上山设为up=True,如果前者小于后者,出现了上山up=False,则将下山设为down=True,不符合上述条件的都直接返回False,最后如果

2021-08-27 15:12:28 49

原创 Leetcode 914. X of a Kind in a Deck of Cards

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,统计元素个数,遍历所有可能的分割数量,下限为2,上限为最少的元素个数,如果满足条件,返回True。Version 1class Solution: def hasGroupsSizeX(self, deck: List[int]) -> bool: stat

2021-08-27 15:11:30 60

原创 Leetcode 845. Longest Mountain in Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,统计山脉元素个数,首先山脉是先上后下,up和down的状态分别表示山脉的上下状态,初始状态都为False,只有down=True时,才记录山脉的最大长度,即最大子数组的长度,当后一个元素大于前一元素时,如果up=True,说明已经记录了上坡长度,此时判断下坡是否也记录了,如果down=True,

2021-08-27 15:10:38 38

原创 Leetcode 1030. Matrix Cells in Distance Order

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,直接根据距离进行排序。Version 使用广度优先搜索。Version 1class Solution: def allCellsDistOrder(self, rows: int, cols: int, rCenter: int, cCenter: int) -> Lis

2021-08-27 15:09:37 55

原创 Leetcode 957. Prison Cells After N Days

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,根据变换规则可知,第一位和最后一位总是0,因此只有中间6位数在变,最大可能的变换周期为2^6。因此只要记录变换周期,因此周期中的所有状态就可得出变换结果,使用字典stat来判断每次变换是否与之前的重复,列表state记录状态变化,当出现重复状态时,计算变换的周期peroid,以及一个周期的状态变

2021-08-27 15:08:40 53

原创 Leetcode 1567. Maximum Length of Subarray With Positive Product

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,首先要将数组从所有零处断开,这样可以保证乘积一定不为0,采用pre来表示前一个0所在的位置,初始状态为-1,当碰到一个0时,计算不包括0在内的子数组长度m,如果m > 0,说明子数组不为空。要计算子数组的乘积为正数的最长长度,需要统计数组中负数的个数neg,如果为偶数,则最长长度为子数组长

2021-08-27 15:06:37 45

原创 Leetcode 1304. Find N Unique Integers Sum up to Zero

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,为了实现和为0,因此添加元素时成对添加+i, -i,如果n为奇数,再加上0即可。Version 1class Solution: def sumZero(self, n: int) -> List[int]: result = [] if n

2021-08-27 15:05:32 46

原创 Leetcode 519. Random Flip Matrix

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用单一数字作为矩阵的坐标索引,利用字典来保存访问过的矩阵索引,如果随机得到的索引在字典中存在,则继续进行随机索引,直至找到一个未访问过的索引,如果所有索引都访问过,则返回空坐标。Version 1class Solution: def __init__(self, m: in

2021-08-27 15:04:43 48

原创 Leetcode 1854. Maximum Population Year

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,创建一个统计年份人数数组,遍历所有日志,遍历出生、死亡之间的年份,累加对应年份的人口,最后找出人口最多最早的年份,注意边界值。Version 2是遍历所有年份,再遍历所有日志,统计每个年份的人口并比较,比Version 1要慢一些。Version 3根据出生年份和死亡年份来更新当年的人口变化,出

2021-08-27 15:02:14 44

原创 Leetcode 1658. Minimum Operations to Reduce X to Zero

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,这道题跟Leetcode 560的解法很像,首先计算数组的总和total,如果total < x,则无论如何也不会将x减到0,如果total = x,则需要移除所有元素才能将x变为0,由于x一直是从最左或最右移除,因此问题可以变为:找到一个最大连续子数组,使得其和为total - x,这样

2021-08-27 15:00:59 54

原创 Leetcode 1964. Find the Longest Valid Obstacle Course at Each Position

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,这道题跟Leetcode 300很像,可以构造一个最长非递减子序列,使用order作为有序序列保持最长非递减子序列长度,当新元素大于或等于有序序列的最后一个元素时,此时增加新元素到有序序列中,否则,则将新元素插入到当前序列中,替换比其大的元素,保证左侧元素都比它小,此时长度不变,order中相同

2021-08-18 16:41:33 62

原创 Leetcode 289. Game of Life

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,遍历所有细胞,统计其周围八个细胞的存活个数,根据规则判断当前细胞状态是否需要改变,如果需要,将其位置及要更新的状态保存到数组中,遍历数组,更新board即可。Version 1class Solution: def gameOfLife(self, board: List[Lis

2021-08-18 16:40:54 43

原创 Leetcode 1914. Cyclically Rotating a Grid

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先根据规律求出每一层的索引,然后按逆时针顺序保存到数组中,则k次循环后当前索引的位置index在列表中的位置为(index+k) % len(circle),因此将当前索引位置的值赋给目标索引位置即可。Version 1class Solution: def rotateGrid

2021-08-18 16:40:07 78

原创 Leetcode 1861. Rotating the Box

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先遍历每一行,将对应的石头移到空白位置,然后再进行行列的90度翻转。遍历每一行时,应该从右向左,寻找每一个石头,即首先应该移动最右边的石头,k用来表示空白位置的索引,k = -1时表示不存在空白位置,当碰到空白位置时,如果此时空白位置k = -1,则将当前位置的索引赋给k,k != -1时,此时

2021-08-18 16:39:29 59

原创 Leetcode 905. Sort Array By Parity

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用前后双指针,每次左边的奇数都跟右边的偶数对换位置。Version 1class Solution: def sortArrayByParity(self, nums: List[int]) -> List[int]: i = 0 j =

2021-08-18 16:38:44 60

原创 Leetcode 1881. Maximum Value after Insertion

Leetcode 1881. Maximum Value after Insertion

2021-08-18 16:37:37 54

原创 Leetcode 977. Squares of a Sorted Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,采用双指针,先计算平方和,再比较大小,较大的更新到结果数组中。Version 2先比较二者绝对值大小,再将平方更新到结果中。Version 1class Solution: def sortedSquares(self, nums: List[int]) -> List[i

2021-08-18 16:36:46 44

原创 Leetcode 1961. Check If String Is a Prefix of Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,遍历数组中的字符串,同时遍历s,如果数组中的字符不等于对应位置的字符,直接返回False,当s遍历结束时,判断数组中当前位置的字符串是否遍历完成,如果数组遍历结束,判断字符串s是否遍历完成。Version 2直接按单词比较。Version 1class Solution: def

2021-08-18 16:35:48 41

原创 Leetcode 1647. Minimum Deletions to Make Character Frequencies Unique

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先用字典统计每个英文字符出现的频率,然后对频率进行由大到小排序,由大到小排列是因为频率最高的是可以出现的最大次数,使用count表示删除的字符数量,使用pre来表示为了不重复,当前字符删除一部分后的出现次数,初始值为pre = frequencies[0],比较当前频率与前一个字符频率的大小,如

2021-08-18 16:35:03 62

提示
确定要删除当前文章?
取消 删除