自定义博客皮肤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

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

  • 博客(918)
  • 资源 (3)
  • 收藏
  • 关注

原创 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 164

原创 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 170

原创 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 206

原创 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 233

原创 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 158

原创 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 200

原创 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 171

原创 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 236

原创 Leetcode 1881. Maximum Value after Insertion

Leetcode 1881. Maximum Value after Insertion

2021-08-18 16:37:37 142

原创 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 183

原创 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 135

原创 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 170

原创 Leetcode 43. Multiply Strings

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,直接按照学习的乘法计算方式来求解,先计算第二个数的每一位(从个位开始)乘以第一个数,再将得出的结果加到一起。Version 2采用另一种方式实现。Version 1class Solution: def multiply(self, num1: str, num2: str) -

2021-08-11 17:44:43 150

原创 Leetcode 1779. Find Nearest Point That Has the Same X or Y Coordinate

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,碰到横纵坐标相等的点计算曼哈顿距离,并与最短距离比较,如果更短,则更新最短距离的点的索引以及最短距离。Version 1class Solution: def nearestValidPoint(self, x: int, y: int, points: List[List[in

2021-08-11 16:19:20 174

原创 Leetcode 1716. Calculate Money in Leetcode Bank

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用两个变量monday和others表示周一和其它天,由于一周是7天,因此遍历时当碰到当天能整除7时,表示是周一,当天存钱数量为monday+1,同时更新monday和others值,当不能整除时,当天存钱数量为others+1,更新others值,每天的钱数累加到total中即可。Ver

2021-08-11 16:18:22 164

原创 Leetcode 1545. Find Kth Bit in Nth Binary String

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,依次求出Si,返回对应的第k位即可。Version 2进行了优化,当字符串的长度大于等于k时,第k位字符就已经可以确定并返回了,不需要执行到Sn。Version 1class Solution: def findKthBit(self, n: int, k: int) ->

2021-08-11 16:17:32 166

原创 Leetcode 1324. Print Words Vertically

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先将字符串按空格分开,然后找到最长的子串长度,遍历长度构造结果子串,注意每个子串后面的空格要去掉。Version 1class Solution: def printVertically(self, s: str) -> List[str]: result

2021-08-11 16:16:38 181

原创 Leetcode 1154. Day of the Year

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先将年、月、日分离出来,然后根据月份和日期累加天数,最后判断时闰年的话总天数加1。Version 1class Solution: def dayOfYear(self, date: str) -> int: year, month, day = map(i

2021-08-11 16:15:51 207

原创 Leetcode 973. K Closest Points to Origin

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,依次计算与原点的距离,然后排序取前k个即可。Version 1class Solution: def kClosest(self, points: List[List[int]], k: int) -> List[List[int]]: n = len(po

2021-08-11 16:14:51 129

原创 Leetcode 1905. Count Sub Islands

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,以第二个矩阵中碰到的1作为起点,然后使用广度优先搜索找到所有相邻的1,即一个岛屿,并将所有岛的坐标保存到队列中(值为1的坐标),将矩阵二中搜索的点对应的值设为2,防止重复搜索,搜索过程中需要同时检查搜索的点是否是矩阵一种的岛屿,如果不是,将标志位设为False,最后根据标志位判断是否是矩阵一种的

2021-08-11 16:14:00 212

原创 Leetcode 1822. Sign of the Product of an Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,碰到0直接返回0,计数负数的个数,如果负数个数时奇数返回-1,偶数返回1。Version 1class Solution: def arraySign(self, nums: List[int]) -> int: count = 0 for

2021-08-11 16:13:19 130

原创 Leetcode 1688. Count of Matches in Tournament

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,按讲述的规则实现即可,最后其实会发现结果始终是n-1。Version 1class Solution: def numberOfMatches(self, n: int) -> int: total = 0 while n != 1:

2021-08-11 16:12:06 108

原创 Leetcode 1486. XOR Operation in an Array

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,初始值设为0,因为任何数异或0都不改变其值,按规则依次计算数组中的值,然后进行异或运算即可。Version 1class Solution: def xorOperation(self, n: int, start: int) -> int: result

2021-08-11 16:10:58 123

原创 Leetcode 1340. Jump Game V

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,采用深度优先搜索,使用visited记录遍历过的索引及对应的跳跃次数,如果当前索引遍历过,直接返回对应的跳跃次数,分别遍历其左右两侧,取左右两侧最大的跳跃次数,返回最大跳跃次数加上当前元素的跳跃次数1。Version 2对数组先排序,获得排序后的索引,然后从最小值的索引开始寻找左右两侧最大跳跃次

2021-08-11 16:10:18 128

原创 Leetcode 1299. Replace Elements with Greatest Element on Right Side

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先排序获取索引,从最大值所在的索引开始遍历,只要是其左侧没有更新过的值都更新,使用left来确定范围,left始终是已更新数据的最右侧,其是下一次遍历的左边界。Version 2从倒数第二个元素开始向前遍历,maximum用来保存右侧最大值,每次遍历先更新当前索引结果位置的数值为maximum,

2021-08-11 16:09:10 126

原创 Leetcode 1871. Jump Game VII

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用队列来保存可进行下一次检索的候选索引,从第0的位置开始检索,根据minJump和maxJump确定检索范围,如果当前字符为0,则将索引添加到队列中,如果恰好是最后一个位置,返回True。下一次的检索范围不能直接从index+minJump开始,因为有可能会造成重复检索,因此取max(inde

2021-08-11 16:06:55 158

原创 Leetcode 1345. Jump Game IV

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先用字典保存数值相同的元素的索引,然后使用广度优先遍历,初始值为(0, 0),分别表示索引位置为0以及跳跃次数1,遍历当前索引的左边元素、右边元素、以及值相同元素的索引,保存索引位置及跳跃次数,使用visited保存访问过的索引,相同数值的索引访问之后要将字典mapping中保持的索引序列也重置

2021-08-11 16:05:50 164

原创 Leetcode 1306. Jump Game III

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用广度优先搜索,其实是个二叉树遍历问题,使用字典记录搜索过的索引,每次根据当前值计算下一次搜索的左右索引,如果在数组范围内且没被搜索过,则将其记录到队列中,依次搜索,如果当前值为0,返回True,如果队列为空时都没找到,则返回False。Version 1class Solution:

2021-08-11 16:05:04 144

原创 Leetcode 934. Shortest Bridge

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先找到矩阵中第一个1作为起点,然后使用广度优先搜索找到所有相邻的1,即第一个岛,并将所有岛的坐标及更改的0计数保存到队列中,初始计数为0,搜索第一个岛的同时,将各个点对应的值设为2,防止重复搜索。从第一个岛的所有点开始,重新使用广度优先搜索,如果搜索的点值为0,将值设为2,表示已经搜索过,同时将

2021-08-06 17:58:28 144

原创 Leetcode 724. Find Pivot Index

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,先将数组分为左右两边,左边为0,右边是数组总和,遍历数组,左边加上当前位置的前一个数,右边减去当前位置的数,如果左右相等,返回当前索引,这样优先找到的是满足条件的最左边的索引,最后没找到,返回-1。Version 1class Solution: def pivotIndex(s

2021-08-06 17:57:45 173

原创 Leetcode 1590. Make Sum Divisible by P

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用前缀和来解决,先对整个数组求和,总和与p的余数设为k,如果k==0,则直接返回0即可。否则,将遍历数组,求前缀和,前缀和与p的余数设为remainder,题目需要移除的部分是两个前缀和相减后的部分,其与p的余数应为k,即(remainder - temp) % p == k,temp是需要寻

2021-08-06 15:25:25 166

原创 Leetcode 974. Subarray Sums Divisible by K

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用前缀和来解决,遍历数组,求前缀和,然后求余数,统计余数次数并保存到字典中,当碰到余数相同时,则意味着当前数组减去之前的前缀和数组可以被k整除,将次数加到count中,更新余数次数。注意,假设第一个数就可以整除k,此时数组中没有余数0的次数,因此stat[0]=1。Version 1c

2021-08-06 15:24:16 182

原创 Leetcode 560. Subarray Sum Equals K

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用前缀和来解决,遍历数组,求前缀和,统计前缀和的次数并保存到字典中,当碰到差值在字典中存在时,则意味着当前数组减去之前的前缀和数组等于k,将次数加到count中,更新前缀和的次数。注意,假设第一个数就等于k,此时数组中没有差值0的次数,因此stat[0]=1。Version 1clas

2021-08-06 15:23:14 130

原创 Leetcode 523. Continuous Subarray Sum

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,使用前缀和来解决,遍历数组,求前缀和,求前缀和与k的余数,余数在字典中存在时,则意味着当前前缀和减去之前的前缀和等于k的倍数,此时计算两个前缀和的长度差,如果大于等于2,则返回True,如果余数不存在,则将余数保存在字典中并记录其索引位置。由于余数相同时不会更新索引,因此,字典中前缀和余数相同时

2021-08-06 15:22:17 150

原创 Leetcode 1577. Number of Ways Where Square of Number Is Equal to Product of Two Numbers

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution解析: Version 1,分别计算两个数组的平方和以及所有组合乘积并统计对应值的个数,遍历每个数组平方和的个数,找到另一个数组对应的积的个数,二者相乘,加到三元组总个数中。Version 2进行进一步优化。Version 1class Solution: def numTriplets(self, nums1:

2021-08-06 15:20:38 159

原创 Leetcode 1561. Maximum Number of Coins You Can Get

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution解析: Version 1,先对数组排序,然后使用贪心算法,每次选两个最大的,选一个最小的,这样保证可以拿到第二大的,同时将最小值从候选数据中剔除。Version 1class Solution: def maxCoins(self, piles: List[int]) -> int: pi

2021-08-06 15:19:34 115

原创 Leetcode 953. Verifying an Alien Dictionary

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,构造顺序字典,通过索引的大小来判断顺序,每个单词都跟后一个单词逐字母比较,如果字母不同,且字母顺序满足条件,直接进行下一轮比较,如果顺序不对,直接返回False,如果字母都相等,但当前单词长度更大,也直接返回False。Version 1class Solution: def i

2021-08-06 15:18:34 133

原创 Leetcode 927. Three Equal Parts

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,由于数组分为三部分,因此各部分中1的个数相等是三部分相等的前提条件之一,因此先计算数组的总和,如果和为0,则i,j的位置是满足二者关系的任意位置,因此直接返回最简单的[0,2]即可,如果总和除3的余数不为0,则一定构不成三部分相等,直接返回[-1,-1],否则,则根据三部分1的个数将数组先分为三

2021-08-06 15:16:06 140

原创 Leetcode 1018. Binary Prefix Divisible By 5

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,每次数组索引向右移动,相当于当前数字左移一位,因此当前数值应在上一数值的基础上乘以2,加上当前位。Version 1class Solution: def prefixesDivBy5(self, nums: List[int]) -> List[bool]:

2021-08-05 17:08:22 116

原创 Leetcode 1785. Minimum Elements to Add to Form a Given Sum

文章作者:Tyan博客:noahsnail.com  |  CSDN  |  简书1. Description2. Solution**解析:**Version 1,根据题意,需要先数组求和,然后再求跟目标的差值,为了添加最少数量的数字,因此每次都应添加极限数值,题目变成了算除法并对余数取整。Version 1class Solution: def minElements(self, nums: List[int], limit: int,

2021-08-04 17:26:59 117

ntdll.lib文件

ntdll.lib是编译lmdb数据库时需要用到的静态库,在编译caffe时有用

2016-01-29

lmdb代码——caffe

lmdb,搭建caffe必备,少的东西我都添加上了,能直接生成

2016-01-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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