摘要:写在前面的话好几天木有刷题啦,今天猛刷了一把,要梳理一个顺序好好的学习啦一定要好好执行每天做题的计划最近真的好忙碌啊,还要做视频。第二题最大子序和难度简单给定一个整数数组,找到一个具有最大和的连续子数组子数组最少包含一个元素,返回其最大和。
写在前面的话
好几天木有刷题啦,今天猛刷了一把,要梳理一个顺序好好的学习啦~
一定要好好执行每天做题的计划!
最近真的好忙碌啊,还要做视频。
不过呢,看了高效学习的书,感觉其实不能说太分散的学习,应该考虑多方面的联系,形成整体性的学习,还得琢磨琢磨...
小李加油呀!
58. 最后一个单词的长度
难度:简单
给定一个仅包含大小写字母和空格 " " 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回0。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
我的题解:
class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ lastindex = 0 res = 0 for i in s: if i == " ": lastindex = 0 else: lastindex = lastindex + 1 if lastindex > 0: res = lastindex return res
方法的效率不是太高。
解题思路:
每次遇到空格的时候,单词的长度就置空,不是的话就加1,然后用res记录上一次的lastindex长度。
其他
这题也要再多刷一次。
53. 最大子序和
难度:简单
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
我的题解:
class Solution(object): def maxSubArray(self, nums): """ :type nums: List[int] :rtype: int """ maxSum = nums[0] sum = 0 for i in nums: sum = sum + i if sum > maxSum: maxSum = sum if sum < 0: sum = 0 return maxSum
解题思路:
这题是参考了小佳扬的思路。
重点考虑什么时候会有最大的值。
maxSum其实相当于一个记住上次最大值的点,sum则是移动的点。
当遇到会导致总和小于0的值,那一定是要排除的,因为肯定会拉低总和大小。
其他:
这次还要多考虑情况,然后再刷一次。
35. 搜索插入位置
难度:简单
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
我的题解:
class Solution(object): def searchInsert(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ length = len(nums) for i in range(length): if nums[i] == target: return i if nums[i] > target: nums.insert(i,target) return i nums.append(target) return length
解题思路:
用了insert的办法,找到对应的Index之后插入即可。
28. 实现strStr()
难度:简单
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
我的题解:
class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ if needle == "": return 0 length_a = len(needle) length_b = len(haystack) if length_b < length_a: return -1 for i in range(length_b): if haystack[i] == needle[0]: for j in range(length_a): if i+j == length_b: return -1 if haystack[i+j] != needle[j]: i = -1 if j == length_a-1 and i !=-1: return i i = -1 return i
解题思路:
这串代码其实写的有点土,还得优化下,用的就是反复循环check,暴力破解。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/43308.html
摘要:刷题第三天正式刷题第三天。注意空字符串可被认为是有效字符串。错误的一次是因为没有考虑空字符串,当存在为的时候,结果应该为。第二题加一难度简单类型给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 刷题第三天 正式刷题第三天。之前看了个说法,挺认可的。就是不要太在意一天的能呈现的价值,但是要在意累计的价值。之前很多时候我会对今天一天没有完成的计划而沮丧,事实上,算法的实践...
摘要:写在前面今天的小李的目标是排序算法,果然还是要下手写才会更有体会,也更记得住。排序算法冒泡排序主要是比对相邻两个数之间的大小关系,不断将较大值交换至最后。 写在前面 今天的小李的目标是排序算法,果然还是要下手写才会更有体会,也更记得住。 认真做题的分割线 第一题 215. 数组中的第K个最大元素难度:中等在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的...
摘要:第二题罗马数字转整数难度简单罗马数字包含以下七种字符,,,,,和。字符数值例如,罗马数字写做,即为两个并列的。通常情况下,罗马数字中小的数字在大的数字的右边。给定一个罗马数字,将其转换成整数。 随便说点啥 TIME:2019-02-01昨晚其实刷了题来着,但是没有解出来,哭泣!但是,今天重新写了下,解出来咯~所以今天的题量要增加咯~我会加油的! 第一题 14. 最长公共前缀难度:简单 ...
摘要:给定一个大小为的数组,找到其中的众数。第五题合并两个有序数组难度简单给定两个有序整数数组和,将合并到中,使得成为一个有序数组。说明初始化和的元素数量分别为和。第六题二叉树的最大深度难度简单给定一个二叉树,找出其最大深度。 写在前面的话 做做做题,慢慢上手了就觉得刷题速度变快了,果然还是有点笨~希望最后一窍快点通吧~ 开始做题 第一题 169. 求众数难度:简单给定一个大小为 n 的数组...
摘要:第二题汉明距离难度简单两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数和,计算它们之间的汉明距离。第三题买卖股票的最佳时机难度简单给定一个数组,它的第个元素是一支给定股票第天的价格。 写在前面 这几天断断续续做了题目,也在慢慢体会一些数据思维。终于不用边做视频边写题目啦~开心~把这几天的题解发一下~ 认真做题的分割线 第一题 977. 有序数组的平方难度...
阅读 2901·2021-11-24 09:39
阅读 3481·2021-11-22 13:54
阅读 3395·2021-11-16 11:45
阅读 2417·2021-09-09 09:33
阅读 3166·2019-08-30 15:55
阅读 1263·2019-08-29 15:40
阅读 906·2019-08-29 15:19
阅读 3372·2019-08-29 15:14