IOT_victor的博客

私信 关注
NLP_victor
码龄5年
  • 138,019
    被访问量
  • 362
    原创文章
  • 14,577
    作者排名
  • 67
    粉丝数量
  • 于 2016-09-02 加入CSDN
获得成就
  • 获得430次点赞
  • 内容获得71次评论
  • 获得227次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #数据分析#TensorFlow#PyTorch#机器学习#算法#NLP#Python#深度学习#自然语言处理
TA的专栏
  • 刷题清单
    5篇
  • NLP
    13篇
  • 数据竞赛
    10篇
  • NLP实战
    12篇
  • 机器学习算法
    5篇
  • 动态规划
    47篇
  • String
    24篇
  • Array
    65篇
  • LinkedList
    15篇
  • Tree
    36篇
  • DFS、BFS
    13篇
  • 贪心算法、位运算、Math
    16篇
  • 二分查找
    12篇
  • 排序
    11篇
  • 回溯
    12篇
  • Go语言
    1篇
  • LeetCode
    34篇
  • 资料大全
    5篇
  • 算法卡片
    11篇
  • 算法面试
    12篇
  • DL/ML/DM实战
    13篇
  • 牛客
    45篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Excel打开csv文件出现中文乱码的解决方法(Notepad打开正常)

原因:Excel 在读取 csv 的时候是通过读取文件头上的 bom 来识别编码的,这导致如果我们生成 csv 文件的平台输出无 bom 头编码的 csv 文件(例如 utf-8 ,在标准中默认是可以没有 bom 头的),Excel 只能自动按照默认编码读取,不一致就会出现乱码问题了。方法:只需将不带 bom 头编码的 csv 文件,用文本编辑器(工具随意,如 notepad++ )打开并转换为带 bom 的编码形式。附:对于 utf-8 编码,unicode 标准中是没有 bom 定义的,微软在自
原创
39阅读
0评论
1点赞
发布博客于 8 天前

天池预训练

预测
原创
23阅读
0评论
0点赞
发布博客于 13 天前

LeetCode1423. 可获得的最大点数(滑动窗口)

1、题目描述https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。输入:cardPoints = [
原创
14阅读
0评论
1点赞
发布博客于 24 天前

LeetCode665. 非递减数列(分类讨论)

1、题目描述https://leetcode-cn.com/problems/non-decreasing-array/给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。定义一个非递减数列的:对于数组中任意的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。...
原创
25阅读
0评论
1点赞
发布博客于 24 天前

LeetCode567. 字符串的排列(滑动窗口、Counter)

1、题目描述https://leetcode-cn.com/problems/permutation-in-string/给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。输入的字符串只包含小写字母 两个字符串的长度都在 [1, 10,000] 之间输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").输入: s1= "a...
原创
100阅读
0评论
1点赞
发布博客于 24 天前

LeetCode978. 最长湍流子数组(动态规划)

1、题目描述https://leetcode-cn.com/problems/longest-turbulent-subarray/当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组:若i <= k < j,当 k为奇数时,A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若i <= k < j,当 k 为偶数时,A[k] > A[k+1],且当 k为奇数时,...
原创
149阅读
2评论
1点赞
发布博客于 26 天前

LeetCode643. 子数组最大平均数 I(前缀和、滑动窗口)

1、题目描述https://leetcode-cn.com/problems/maximum-average-subarray-i/给定n个整数,找出平均数最大且长度为k的连续子数组,并输出该最大平均数。输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.752、代码详解法一:前缀和先遍历一次,求数组每个位置的 preSum,然后再遍历一次,求长度为 k 的每个区间的最大和。最...
原创
21阅读
0评论
1点赞
发布博客于 29 天前

LeetCode1208. 尽可能使字符串相等(滑动窗口)

1、题目描述https://leetcode-cn.com/problems/get-equal-substrings-within-budget/给你两个长度相同的字符串,s 和 t。只含小写英文字母。将 s中的第i个字符变到t中的第 i 个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果...
原创
78阅读
0评论
1点赞
发布博客于 29 天前

LeetCode480. 滑动窗口中位数(二分查找)

1、题目描述https://leetcode-cn.com/problems/sliding-window-median/中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。[2,3,4],中位数是3 [2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个长度为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输.
原创
17阅读
1评论
1点赞
发布博客于 1 月前

LeetCode424. 替换后的最长重复字符(双指针:滑动窗口)

1、题目描述https://leetcode-cn.com/problems/longest-repeating-character-replacement/给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过10^4。输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。输入:s = "AABCA...
原创
53阅读
2评论
1点赞
发布博客于 1 月前

LeetCode888. 公平的糖果棒交换(两数之和变形)

1、题目描述https://leetcode-cn.com/problems/fair-candy-swap/爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。 因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1]是 Bob 必须交换的糖果棒的大小.
原创
36阅读
1评论
1点赞
发布博客于 1 月前

LeetCode287. 寻找重复数(二分)

1、题目描述https://leetcode-cn.com/problems/find-the-duplicate-number/给定一个包含n + 1 个整数的数组nums ,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。nums.length == n + 1 1 <= nums[i] <= n nums中只有一个整数出现两次或多次,其余整数均只出现一次进阶:...
原创
32阅读
2评论
1点赞
发布博客于 2 月前

LeetCode49. 字母异位词分组(字典)

1、题目描述https://leetcode-cn.com/problems/group-anagrams/给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]所有输入均为小写字母。 不考虑答案输出的顺序。2、代码详解先排序,再用字典di..
原创
38阅读
0评论
1点赞
发布博客于 2 月前

Go环境配置(Win10+vscode)

go安装包下载地址:https://studygolang.com/dl安装程序一路next安装成功命令行中查看vscodevscode地址:https://code.visualstudio.com/
原创
61阅读
0评论
1点赞
发布博客于 2 月前

LeetCode217. 存在重复元素(哈希)

1、题目描述https://leetcode-cn.com/problems/contains-duplicate/给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。输入: [1,2,3,1]输出: true输入: [1,2,3,4]输出: false输入: [1,1,1,3,3,4,3,2,4,2]输出: true2、代码详解哈希:用字典记录以及访问的元素O...
原创
63阅读
0评论
1点赞
发布博客于 2 月前

DP-LeetCode376. 摆动序列

1、题目描述https://leetcode-cn.com/problems/wiggle-subsequence/如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如,[1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3)是正负交替出现的。 相反, [1,4,7,2,5]和[1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序...
原创
13阅读
0评论
1点赞
发布博客于 2 月前

LeetCode842. 将数组拆分成斐波那契序列(回溯+剪枝)

1、题目描述https://leetcode-cn.com/problems/split-array-into-fibonacci-sequence/给定一个数字字符串S,比如S = "123456579",我们可以将它分成斐波那契式的序列[123, 456, 579]。另外,请注意,将字符串拆分成小块时,每个块的数字一定不要以零开头,除非这个块是数字 0 本身。返回从 S 拆分出来的任意一组斐波那契式的序列块,如果不能拆分则返回 []。输入:"123456579"输出:[...
原创
36阅读
0评论
1点赞
发布博客于 2 月前

LeetCode861. 翻转矩阵后的得分(贪心)

1、题目描述https://leetcode-cn.com/problems/score-after-flipping-matrix/有一个二维矩阵A 其中每个元素的值为0或1。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39...
原创
36阅读
0评论
1点赞
发布博客于 2 月前

LeetCode118. 杨辉三角(Python)

1、题目描述https://leetcode-cn.com/problems/pascals-triangle/给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]2、代码详解当前一行只比上一行多了一个元素,最最关键的一点:本行元素等于上一行元素往后错一位再逐个相加只要...
原创
21阅读
0评论
1点赞
发布博客于 3 月前

TianChi新闻推荐03:排序模型+模型融合

Task05 天池新闻推荐入门赛之【排序模型+模型融合】http://datawhale.club/t/topic/202排序模型通过召回的操作, 已经进行了问题规模的缩减,对于每个用户, 选择出了N篇文章作为了候选集, 并基于召回的候选集构建了与用户历史相关的特征,以及用户本身的属性特征,文章本省的属性特征,以及用户与文章之间的特征,下面就是使用机器学习模型来对构造好的特征进行学习, 然后对测试集进行预测,得到测试集中的每个候选集用户点击的概率,返回点击概率最大的topk个文章,
原创
23阅读
0评论
1点赞
发布博客于 3 月前

LeetCode321. 拼接最大数(单调栈、分治)

1、题目描述给定长度分别为m和n的两个数组,其元素由0-9构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。输入:nums1 = [6, 7]nums2 = [6, 0, 4]k = 5输出:[6, 7, 6, 0, 4]输入:nums1 = [3, 9]nums2 =...
原创
28阅读
0评论
1点赞
发布博客于 3 月前

LeetCode402. 移掉K位数字(单调栈)

1、题目描述https://leetcode-cn.com/problems/remove-k-digits/给定一个以字符串表示的非负整数num,移除这个数中的k位数字,使得剩下的数字最小。输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导...
原创
66阅读
1评论
1点赞
发布博客于 3 月前

LeetCode767. 重构字符串(贪心+Count)

1、题目描述https://leetcode-cn.com/problems/reorganize-string/给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。输入: S = "aab"输出: "aba"输入: S = "aaab"输出: ""S只包含小写字母并且长度在[1, 500]区间内。2、代码详解基于计数的贪心算法贪心的思想,想明白这个就解出来了。 判断解存在很容易,出现次数最多..
原创
27阅读
0评论
1点赞
发布博客于 3 月前

TianChi新闻推荐02:多路召回+特征工程

faissfaiss工具包一般使用在推荐系统中的向量召回部分。在做向量召回的时候要么是u2u,u2i或者i2i,这里的u和i指的是user和item. 在实际的场景中user和item的数量都是海量的,最容易想到的基于向量相似度的召回就是使用两层循环遍历user列表或者item列表计算两个向量的相似度, 但是这样做在面对海量数据是不切实际的,faiss就是用来加速计算某个查询向量最相似的topk个索引向量。faiss使用了PCA和PQ(Product quantization乘积量化)两种技术
原创
47阅读
0评论
1点赞
发布博客于 3 月前

LeetCode454. 四数相加 II(哈希)

1、题目描述https://leetcode-cn.com/problems/4sum-ii/给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过231 - 1 。输入:A = [ 1, 2]B = [...
原创
81阅读
1评论
1点赞
发布博客于 3 月前

LeetCode976. 三角形的最大周长(Python)

1、题目描述https://leetcode-cn.com/problems/largest-perimeter-triangle/给定由一些正数(代表长度)组成的数组A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。输入:[2,1,2]输出:5输入:[1,2,1]输出:0输入:[3,2,3,4]输出:10输入:[3,6,2,3]输出:83 <= A.length <= 10000 1 &..
原创
30阅读
0评论
1点赞
发布博客于 3 月前

LeetCode493. 翻转对(归并排序)

1、题目描述https://leetcode-cn.com/problems/reverse-pairs/给定一个数组nums,如果i < j且nums[i] > 2*nums[j]我们就将(i, j)称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。输入: [1,3,2,3,1]输出: 2输入: [2,4,3,5,1]输出: 3给定数组的长度不会超过50000。 输入数组中的所有数字都在32位整数的表示范围内。2、代码详解...
原创
26阅读
0评论
1点赞
发布博客于 3 月前

LeetCode164. 最大间距(桶排序)

1、题目描述https://leetcode-cn.com/problems/maximum-gap/给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。你可以假设数组中所有元素都是非负整数,且数值在 32
原创
62阅读
2评论
1点赞
发布博客于 3 月前

LeetCode1370. 上升下降字符串(桶计数)

1、题目描述https://leetcode-cn.com/problems/increasing-decreasing-string/给你一个字符串s,请你根据下面的算法重新构造字符串:从 s中选出 最小的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。 重复步骤 2 ,直到你没法从 s中选择字符。 从 s中选出 最大的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最大...
原创
30阅读
0评论
1点赞
发布博客于 3 月前

TianChi新闻推荐01:协同过滤itemCF

1、介绍https://tianchi.aliyun.com/competition/entrance/531842/information赛题以预测用户未来点击新闻文章为任务,该数据来自某新闻APP平台的用户交互数据,包括30万用户,近300万次点击,共36万多篇不同的新闻文章,同时每篇新闻文章有对应的embedding向量表示。 从中抽取20万用户的点击日志数据作为训练集,5万用户的点击日志数据作为测试集A,5万用户的点击日志数据作为测试集B。数据集train_click_log.c
原创
31阅读
0评论
1点赞
发布博客于 3 月前

LeetCode222. 完全二叉树的节点个数(Python)

1、题目描述https://leetcode-cn.com/problems/count-complete-tree-nodes/给出一个完全二叉树,求出该树的节点个数。完全二叉树的定义如下:除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~2h个节点。2、代码详解比较左子树和右子树之间的深度A.如果相等,则表示左子树是完整的二叉树 B.不是,这意味着右边的子树是完整的二叉树#..
原创
40阅读
0评论
1点赞
发布博客于 3 月前

LeetCode452. 用最少数量的箭引爆气球(排序+贪心、区间问题)

1、题目描述https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且
原创
31阅读
0评论
1点赞
发布博客于 3 月前

LeetCode147. 对链表进行插入排序(Python)

1、题目描述https://leetcode-cn.com/problems/insertion-sort-list/对链表进行插入排序。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。输入: -1->5->3->4->0输出: -1->0->3->4->52
原创
39阅读
1评论
1点赞
发布博客于 3 月前

LeetCode134. 加油站(逻辑题)

1、题目描述https://leetcode-cn.com/problems/gas-station/在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中...
原创
46阅读
0评论
1点赞
发布博客于 3 月前

LeetCode129. 求根到叶子节点数字之和(DFS、BFS)

1、题目描述https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1-&...
原创
49阅读
0评论
1点赞
发布博客于 4 月前

LeetCode1207. 独一无二的出现次数(dict)

1、题目描述https://leetcode-cn.com/problems/unique-number-of-occurrences/给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回true;否则返回false。输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。输入:arr = [1,2]输出:fals...
原创
76阅读
0评论
1点赞
发布博客于 4 月前

LeetCode1365. 有多少小于当前数字的数字(计数排序)

1、题目描述https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number/给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。输入:nums = [8,1,2,2..
原创
36阅读
0评论
1点赞
发布博客于 4 月前

LeetCode845. 数组中的最长山脉(双指针技巧)

1、题目描述https://leetcode-cn.com/problems/longest-mountain-in-array/我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3 存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数.
原创
74阅读
0评论
1点赞
发布博客于 4 月前

LeetCode234. 回文链表(Python)

1、题目详解https://leetcode-cn.com/problems/palindrome-linked-list/请判断一个链表是否为回文链表。进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?输入: 1->2输出: false输入: 1->2->2->1输出: true2、代码描述找到前半部分链表的尾节点。快慢指针在一次遍历中找到。 反转后半部分链表。 判断是否回文。 比较两个部分的值,当后半部分到达末尾则比较完成..
原创
31阅读
0评论
1点赞
发布博客于 4 月前

LeetCode1024. 视频拼接(贪心、DP)

1、题目描述https://leetcode-cn.com/problems/video-stitching/你将会获得一系列视频片段,这些片段来自于一项持续时长为T秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段clips[i]都用区间进行表示:开始于clips[i][0]并于clips[i][1]结束。我们甚至可以对这些片段自由地再剪辑,例如片段[0, 7]可以剪切成[0, 1] +[1, 3] + [3, 7]三部分。我们需要将这些片段进行再剪辑,...
原创
180阅读
0评论
1点赞
发布博客于 4 月前

LeetCode763. 划分字母区间(dict+双指针)

1、题目描述https://leetcode-cn.com/problems/partition-labels/字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]【解释】划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadef
原创
52阅读
0评论
1点赞
发布博客于 4 月前

LeetCode143. 重排链表(L0→Ln→L1→Ln-1)

1、题目描述https://leetcode-cn.com/problems/reorder-list/2、代码详解1 -> 2 -> 3 -> 4 -> 5 -> 6第一步,将链表平均分成两半1 -> 2 -> 34 -> 5 -> 6 第二步,将第二个链表逆序1 -> 2 -> 36 -> 5 -> 4 第三步,依次连接两个链表1 -> 6 -> 2 -> 5
原创
29阅读
0评论
1点赞
发布博客于 4 月前

PTM学习笔记

1、ALbert
原创
134阅读
0评论
1点赞
发布博客于 4 月前

检索式对话学习笔记

1、文本相似度编辑距离https://blog.csdn.net/wxgxgp/article/details/104184418import Levenshteinhttps://blog.csdn.net/IOT_victor/article/details/106670275simhashhttps://blog.csdn.net/wxgxgp/article/details/104106867余弦相似度https://blog.csdn.net/wxgxgp/articl...
原创
179阅读
0评论
1点赞
发布博客于 4 月前

双指针-LeetCode977. 有序数组的平方

1、题目描述https://leetcode-cn.com/problems/squares-of-a-sorted-array/给定一个按非递减顺序排序的整数数组A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]1 <= A.length <= 10000 -10000 <= A[i] <= 10000 .
原创
26阅读
0评论
1点赞
发布博客于 4 月前

LeetCode51、52N皇后(回溯)Python

51. N 皇后https://leetcode-cn.com/problems/n-queens/n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。class S...
原创
66阅读
1评论
1点赞
发布博客于 4 月前

LeetCode116. 填充每个节点的下一个右侧节点指针(O(1)空间)

1、题目描述https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。你只能使用常量级额外空间。 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。2、代码详解完美二叉树,即每一层的节点都是满的。完成后的串联树,其连接的方式有两种:第一种是这两个串
原创
33阅读
0评论
1点赞
发布博客于 4 月前

LeetCode1002. 查找常用字符(哈希表、count)

1、题目描述https://leetcode-cn.com/problems/find-common-characters/给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。输入:["bella","label","roller"]输出:["e","l","l"]输入:["cool","lock",
原创
841阅读
2评论
1点赞
发布博客于 4 月前

LeetCode530. 二叉搜索树的最小绝对差(中序、栈)

1、题目描述https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。树中至少有 2 个节点。2、代码详解中序遍历(利用栈)中序遍历二叉搜索树,第一个结点外的每个节点与其前一节点的差值,如果该值小于最小绝对差,就用它更新最小绝对差(初始可设为无穷)。没有必要取绝对值 abs(cur_val - pre_val), 二.
原创
67阅读
0评论
1点赞
发布博客于 4 月前

LeetCode416. 分割等和子集(0−1背包问题)

1、题目详解https://leetcode-cn.com/problems/partition-equal-subset-sum/给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。每个数组中的元素不会超过 100 数组的大小不会超过 2002、代码详解空间复杂度是O(n×target),时间复杂度是O(n×target)空间优化题解:https://leetcode-cn.com/problems/partition-equal-.
原创
47阅读
0评论
1点赞
发布博客于 4 月前

LeetCode701. 二叉搜索树中的插入操作(递归非递归)

1、题目描述https://leetcode-cn.com/problems/insert-into-a-binary-search-tree/给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。(每个节点都有一个唯一整数值,新值和原始二叉搜索树中的任意节点值都不同)注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。2、代码详解
原创
91阅读
0评论
0点赞
发布博客于 5 月前

LeetCode404. 左叶子之和(Python)

1、题目描述https://leetcode-cn.com/problems/sum-of-left-leaves/2、代码详解递归# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def su
原创
71阅读
0评论
1点赞
发布博客于 5 月前

LeetCode37. 解数独(回溯+set)

1、题目描述https://leetcode-cn.com/problems/sudoku-solver/编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。from typing import Listclass Solution: def solveSudoku(sel...
原创
48阅读
0评论
1点赞
发布博客于 5 月前

LeetCode128. 最长连续序列([100, 4, 200, 1, 3, 2],最长连续序列是 [1, 2, 3, 4])

1、题目描述https://leetcode-cn.com/problems/single-number/给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为O(n)。输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。2、代码详解解题思路:dict模拟哈希表,题目要求 O(n)复杂度。用哈希表存储每个端点值对应连续区间的长度若数已在哈希表中:跳过不做处理若是新数加入:取出.
原创
65阅读
0评论
1点赞
发布博客于 5 月前

LeetCode136. 只出现一次的数字(异或)

1、题目描述https://leetcode-cn.com/problems/single-number/给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 42、代码详解解法1:使用快排,复杂度O(nlogn)解法2:利用 Hash 表,Time:O(n) Space:...
原创
69阅读
0评论
1点赞
发布博客于 5 月前

LeetCode78. 子集+90. 子集 II(回溯)

78. 子集https://leetcode-cn.com/problems/subsets/给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。输入: nums = [1,2,3]输出: [[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]回溯代码class Solution(object): def subsets(self, nums): .
原创
26阅读
0评论
1点赞
发布博客于 5 月前

LeetCode48. 旋转图像(Python)

1、题目描述https://leetcode-cn.com/problems/rotate-image/给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]2、代码详解...
原创
25阅读
0评论
1点赞
发布博客于 5 月前

LeetCode79. 单词搜索(DFS+4种directions)

1、题目描述https://leetcode-cn.com/problems/word-search/给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回
原创
54阅读
0评论
1点赞
发布博客于 5 月前

LeetCode84. 柱状图中最大的矩形+85. 最大矩形(单调栈)

1、题目描述https://leetcode-cn.com/problems/largest-rectangle-in-histogram/给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。柱状图的示例,其中每个柱子的宽度为 1,给定的高度为[2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。输入: [2,1,5,6,2,3]输出: 102、代码详...
原创
76阅读
0评论
1点赞
发布博客于 5 月前

LeetCode637. 二叉树的层平均值(层序遍历)

1、题目描述https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。2、代码详解python3的 / 才是正常
原创
27阅读
0评论
1点赞
发布博客于 5 月前

BERT应用篇笔记

1、QAQA应用Bert,从流程角度,一般分为两个阶段:检索+QA问答判断。首先往往会把比较长的文档切割成段落或者句子n-gram构成的语言片段,这些片段俗称Passage,然后利用搜索里的倒排索引建立快速查询机制。 第一个阶段是检索阶段,这个和常规的搜索过程相同,一般是使用BM25模型(或者BM25+RM3等技术)根据问句查询可能的答案所在候选段落或者句子; 第二个阶段是问答判断。在训练模型的时候,使用SQuAD等比较大的问答数据集,或者手上的任务自有数据集,对Bert模型进行 Fine-tu
原创
109阅读
0评论
1点赞
发布博客于 5 月前

LeetCode40. 组合总和 II+216. 组合总和 III(回溯)

40. 组合总和 IIhttps://leetcode-cn.com/problems/combination-sum-ii/给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。输入: candidates =[10,1,2,7,6,1,5], target =8,...
原创
36阅读
0评论
1点赞
发布博客于 5 月前

推荐系统学习笔记

推荐系统技术演进趋势:从召回到排序再到重排https://zhuanlan.zhihu.com/p/100019681四个环节分别是:召回、粗排、精排和重排。可以在召回和精排之间加入一个粗排环节,通过少量用户和物品特征,简单模型,来对召回的结果进行个粗略的排序,在保证一定精准的前提下,进一步减少往后传送的物品数量,粗排往往是可选的,可用可不同,跟场景有关。 之后,是精排环节,使用你能想到的任何特征,可以上你能承受速度极限的复杂模型,尽量精准地对物品进行个性化排序。 排序完成后,传给重排环节,
原创
93阅读
0评论
0点赞
发布博客于 5 月前

回溯-LeetCode77. 组合(Python)

1、题目描述https://leetcode-cn.com/problems/combinations/给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]回溯回溯-39. 组合总和https://blog.csdn.net/IOT_victor/article/details/10764618577...
原创
68阅读
0评论
1点赞
发布博客于 5 月前

LeetCode60. 第k个排列(规律题)

1、题目描述注:回溯法求全排列再输出第k-1位超时,所以此题找规律https://leetcode-cn.com/problems/permutation-sequence/给定n的范围是 [1, 9]。 给定k的范围是[1, n!]。输入: n = 3, k = 3输出: "213"输入: n = 4, k = 9输出: "2314"31. 下一个排列https://blog.csdn.net/IOT_victor/article/details/107465...
原创
33阅读
0评论
0点赞
发布博客于 6 月前

LeetCode257. 二叉树的所有路径(Python)

1、题目详解https://leetcode-cn.com/problems/binary-tree-paths/给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->32、代码描述# Definition for a binary tr.
原创
50阅读
0评论
1点赞
发布博客于 6 月前

LeetCode541. 反转字符串 II(每隔 2k 个字符的前 k 个字符反转)

1、题目描述https://leetcode-cn.com/problems/reverse-string-ii/给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。通俗一点说,每隔k个反转k个,末尾不够k个时全部反转输入: s = "abcdefg", k = 2输出: "bacdfeg".
原创
90阅读
0评论
1点赞
发布博客于 6 月前

LeetCode557. 反转字符串中的单词 III(Python)

557. 反转字符串中的单词 IIIhttps://leetcode-cn.com/problems/reverse-words-in-a-string-iii/给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"法一:将字符串分割成单词列表,然后把每个单词word反转切片class Solution(object):
原创
24阅读
0评论
1点赞
发布博客于 6 月前

LeetCode103. 二叉树的锯齿形层次遍历(BFS)

1、题目描述https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。返回锯齿形层次遍历[[3], [20,9], [15,7]]2、代码详解层序遍历BFS# Definition for a binary tree node.# class TreeNode(
原创
49阅读
0评论
1点赞
发布博客于 6 月前

NLP任务常见评价指标

1、匹配任务
原创
165阅读
0评论
1点赞
发布博客于 6 月前

背包问题系列

1、背包问题https://www.jiuzhang.com/solutions/backpack/#tag-lang-python在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]输入: [3,4,8,5], backpack size=10, 输出: 9输入: [2,3,5,7], backpack size=12, 输出: 12用dp[i][j]表示能否用前i个物品拼出重量j (TRUE / FALSE)class S...
原创
86阅读
0评论
1点赞
发布博客于 6 月前

LeetCode238. 除自身以外数组的乘积(Python)

1、题目描述https://leetcode-cn.com/problems/product-of-array-except-self/给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: ...
原创
81阅读
0评论
1点赞
发布博客于 6 月前

剑指Offer13. 机器人的运动范围DFS(Python)

一、题目描述https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38]
原创
55阅读
0评论
1点赞
发布博客于 6 月前

LeetCode17. 电话号码的字母组合(Python)

1、题目描述https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案.
原创
99阅读
0评论
1点赞
发布博客于 6 月前

DFS、回溯-LeetCode491. 递增子序列

1、题目描述https://leetcode-cn.com/problems/increasing-subsequences/给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]给定数组的长度不会超过15。 数组中的整数范围是[-100,100]。 给定数组中.
原创
55阅读
0评论
1点赞
发布博客于 6 月前

LeetCode110. 平衡二叉树(树的深度)

1、题目描述https://leetcode-cn.com/problems/balanced-binary-tree/给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。2、代码详解最优解:从底至顶(提前阻断)思路是对二叉树做后序遍历,从底至顶返回子树最大高度,若判定某子树不是平衡树则 “剪枝” ,直接向上返回。递归推导递归到最深处返回0,因为叶子节点的左右节点是空;此时ma..
原创
168阅读
0评论
1点赞
发布博客于 6 月前

DP-LeetCode546. 移除盒子(困难题:消消乐)

1、题目描述https://leetcode-cn.com/problems/remove-boxes/给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。 你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >= 1),这样一轮之后你将得到 k*k 个积分。 当你将所有盒子都去掉之后,求你能获得的最大积分和。输入:boxes = [1,3,2,2,2,3,4,3,1]输出:23解释:[1, 3, 2,
原创
121阅读
0评论
1点赞
发布博客于 6 月前

数学-LeetCode43. 字符串相乘

1、题目描述https://leetcode-cn.com/problems/multiply-strings/给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。num1 和 num2 的长度小于110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。2、代码
原创
42阅读
1评论
1点赞
发布博客于 6 月前

DFS-LeetCode130. 被围绕的区域

1、题目描述https://leetcode-cn.com/problems/surrounded-regions/给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为'...
原创
54阅读
0评论
0点赞
发布博客于 6 月前

字符串-LeetCode696. 计数二进制子串

1、题目描述https://leetcode-cn.com/problems/count-binary-substrings/给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出.
原创
71阅读
0评论
1点赞
发布博客于 6 月前

LeetCode100. 相同的树(dfs)

1、题目描述https://leetcode-cn.com/problems/same-tree/给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true2、代码详解dfs# Definition for.
原创
58阅读
0评论
1点赞
发布博客于 7 月前

滑动窗口-LeetCode76. 最小覆盖子串

1、题目描述https://leetcode-cn.com/problems/minimum-window-substring/2、代码详解from collections import Counterfrom collections import defaultdictclass Solution: def minWindow(self, s, t): # 最短子串开始位置和长度 start, min_len = 0, float('Inf'.
原创
74阅读
0评论
0点赞
发布博客于 7 月前

DFS-LeetCode695. 岛屿的最大面积

1、题目描述https://leetcode-cn.com/problems/max-area-of-island/找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0)对于上面这个给定矩阵应返回 6。注意答案不应该是 11 ,因为岛屿只能包含水平或垂直的四个方向的 1 。2、代码详解class Solution(object): def maxAreaOfIsland(self, arr): m = len(arr) if..
原创
59阅读
0评论
1点赞
发布博客于 7 月前

拓扑排序-LeetCode207. 课程表

1、题目描述https://leetcode-cn.com/problems/course-schedule/你这个学期必须选修 numCourse 门课程,记为0到numCourse-1 。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?输入的先决条件是由 边缘列表 表示的图形,而不是 邻接矩阵 。 你可以假定输入的先决条件中没有重复的...
原创
49阅读
0评论
1点赞
发布博客于 7 月前

链表-LeetCode138. 复制带随机指针的链表

1、题目描述https://leetcode-cn.com/problems/copy-list-with-random-pointer/给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。我们用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示:val:一个表示Node.val的整数。 random_index:随机指针指向的节点索引(范围从0到n...
原创
74阅读
0评论
1点赞
发布博客于 7 月前

双指针-LeetCode125. 验证回文串

1、题目描述https://leetcode-cn.com/problems/valid-palindrome/给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入: "A man, a plan, a canal: Panama"输出: true输入: "race a car"输出: false2、代码详解双指针class Solution(object): def isPali
原创
65阅读
0评论
1点赞
发布博客于 7 月前

数学-LeetCode415. 字符串相加

1、题目描述https://leetcode-cn.com/problems/add-strings/给定两个字符串形式的非负整数num1 和num2,计算它们的和。注意:num1 和num2的长度都小于 5100. num1 和num2 都只包含数字0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式。2、代码详解数学:模拟人工加法class Solution(object)...
原创
40阅读
0评论
1点赞
发布博客于 7 月前

DFS-LeetCode114. 二叉树展开为链表

1、题目描述https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/给定一个二叉树,原地将它展开为一个单链表。2、代码详解# Definition for a binary tree node.class TreeNode(object): def __init__(self, val=0, left=None, right=None): self.val = val
原创
67阅读
0评论
1点赞
发布博客于 7 月前

DP-LeetCode221. 最大正方形

1、题目描述https://leetcode-cn.com/problems/maximal-square/在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。2、代码详解class Solution(object): def maximalSquare(self, matrix): if not matrix: return 0 res = 0 # 记录结果 # 定义d.
原创
54阅读
0评论
1点赞
发布博客于 7 月前

刷题清单3-链表、树

1、LinkedList(链表)删除19. 删除链表的倒数第N个节点/剑22:链表中倒数第k个节点https://blog.csdn.net/IOT_victor/article/details/10448817383. 删除排序链表中的重复元素+82. 删除排序链表中的重复元素 IIhttps://blog.csdn.net/IOT_victor/article/details/107327467剑18.删除链表中重复的结点https://blog.csdn.net/IOT_victo..
原创
116阅读
0评论
1点赞
发布博客于 7 月前

回溯-LeetCode39. 组合总和

1、题目描述https://leetcode-cn.com/problems/combination-sum/给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7], [2,...
原创
62阅读
0评论
1点赞
发布博客于 7 月前

双指针-LeetCode392. 判断子序列

1、题目描述https://leetcode-cn.com/problems/is-subsequence/给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。s="..
原创
45阅读
0评论
2点赞
发布博客于 7 月前

字符串-LeetCode6. Z 字形变换

1、题目描述https://leetcode-cn.com/problems/zigzag-conversion/将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。输入: s = "LEETC...
原创
57阅读
0评论
1点赞
发布博客于 7 月前

贪心-LeetCode410. 分割数组的最大值

1、题目描述https://leetcode-cn.com/problems/split-array-largest-sum/给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n)输入: nums = [7,2,5,10,8] m = 2 输出: 18 解释: 一共有四种方法将nums分割为2个子数组。..
原创
78阅读
0评论
1点赞
发布博客于 7 月前

字符串、回溯-LeetCode93. 复原IP地址

1、题目描述https://leetcode-cn.com/problems/restore-ip-addresses/给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]2、代码详解暴力class Solution(object): d
原创
56阅读
0评论
1点赞
发布博客于 7 月前

LeetCode41. 缺失的第一个正数(原地哈希)

1、题目描述类似题:3.数组中重复的数字(Array)https://blog.csdn.net/IOT_victor/article/details/104725037https://leetcode-cn.com/problems/first-missing-positive/给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。算法的时间复杂度应为O(n),只能使用常数级别的额外空间。输入: [1,2,0]输出: 3输入: [3,4,-1,1]输出: 2输入:
原创
69阅读
0评论
1点赞
发布博客于 7 月前

贪心-LeetCode135. 分发糖果

1、题目描述https://leetcode-cn.com/problems/candy/老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。按照以下要求,帮助老师给这些孩子分发糖果,老师至少需要准备多少颗糖果呢?每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。输入: [1,2,2]输出: 4解释: 你可以分别给.
原创
71阅读
0评论
1点赞
发布博客于 7 月前

LeetCode200. 岛屿数量(BFS、DFS)

1、题目描述https://leetcode-cn.com/problems/number-of-islands/给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0..
原创
97阅读
0评论
1点赞
发布博客于 7 月前

LeetCode440. 字典序的第K小数字

1、题目描述https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order/给定整数n和k,找到1到n中字典序第k小的数字。注意:1 ≤ k ≤ n ≤ 10^9。输入:n: 13 k: 2输出:10解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。2、代码详解求字典序第k个就是上图前序遍...
原创
79阅读
0评论
1点赞
发布博客于 7 月前

LeetCode.31. 下一个排列(全排列)

1、题目描述https://leetcode-cn.com/problems/next-permutation/实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,12、代码详解class Solution:
原创
84阅读
0评论
1点赞
发布博客于 7 月前