滴水成海
滴水成海
全部文章
分类
题解(9)
归档
标签
去牛客网
登录
/
注册
滴水成海的博客
全部文章
(共9篇)
题解 | #最长不含重复字符的子字符串#
1.问题形式化 输入:长为n的字符串 输出:不含重复字符的子字符串的最长长度 2.题目分析 用dp[i]表示前i个字符中包含第i个字符的最长不含重复字符的子字符串的长度值,for循环从i-1往前遍历找到与第i个字符相同的字符的位置j。dp[i]的取值受到两个因素的限制,一个是i左边取值和i处相同的字...
Python3
2022-01-16
0
316
题解 | #连续子数组的最大和(二)#
1.解题思路分析 本题需要求出连续子数组和最大对应的子数组。首先,很显然的是使用dp求出连续子数组和的最大值,那么,怎样求出最大值对应的子数组呢? 一种思路是用left,right记录最大子数组的起始位置,随着动态规划的进行不断更新左右边界。最终的到对应的子数组。
Python3
2022-01-15
0
223
题解 | #数组中重复的数字#
1.问题形式化 输入:n个数组成的无序数组arr,数值为0~n-1; 输出:数组中任意一个重复的数。 2.题目分析 (注:参考鸠摩罗什) 要求时间复杂度为O(n),直接用排序来找重复数字最快也要O(nlogn)。因此,不能直接排序,题目中一个隐含信息是n个数的数值在0~n-1之间,因此可以通过如下方...
2022-01-14
2
465
题解 | #连续子数组的最大和(python两种解法)#
(一)解法一——穷举法(存在重复计算,效率比较低,但是容易理解)1.思路 对于数组[1,-2,3,10,-4,7,2,-5],其连续和值最大对应的数组的右边界一定为数组中的某一个元素,所以可以使用for循环遍历这个元素。右边界确定之后,对于左边界则是使用另一个for循环穷举出所有的可能性。最终...
2021-07-14
2
751
题解 | #跳台阶扩展问题#
递归法和动态规划法解决本题(1)递归法 这是一种自上而下的解决方法,即要想求f(n),需要先求f(n-1),f(n-2),f(n-3)...,依次类推。这种方法的实现是通过调用函数本身来实现的。实现代码如下:class Solution: def jumpFloorII(self, numbe...
2021-07-13
2
365
题解 | #机器人的运动范围#
(解题思路参考的是几位朋友的,侵权联系删)DFS深度优先搜索:(1)首先说一下终止条件: ①行数i(从0开始)大于等于rows; ②列数j(从0开始)大于等于cols; ③行数i与列数j的各位数的和大于threshold; ④该位置已经走过,即(i,j)in res。res中...
2021-07-13
1
413
题解 | #合并两个排序的链表#
方法:(审题:去掉重复值,并没有说去掉连续重复的值,比如{1,2,1,1,2,5,3}->{5,3},而不是{1,2,2,5,3}.)(1)提取链表值到列表中,使用filter()函数过滤掉重复元素。(2)使用列表构造链表。class Solution: def deleteDuplicati...
2021-07-12
1
366
题解 | #合并两个排序的链表#
思路:(1)将两个链表合并;(2)将链表中的数值提取到一个列表当中,并使用sort()按递增进行排序;(3)按照列表重建节点,链表,返回新建的链表代码: class Solution: def Merge(self, pHead1, pHead2): # write code here ...
2021-07-07
1
394
题解 | #表示数值的字符串#
class Solution: def isNumeric(self , str ): # write code here try: str=float(str) return True except: ...
2021-07-05
1
333