Task 02 数组基础相关及应用
题解:加一
题目描述:将一个整数加一后,以字符形式存在于数组之中;
反思:一开始提交想当然没有考虑到末尾为9(以及连续9)的情况(;′⌒`),后来看了官方的题解(没看代码)前想分情况去讨论,后来写完发现好冗杂,关于算法思想上还需要学习。
知识点:关于for循环的range(start,end,[,step]),忘记了还可以加步长;
题解:寻找数组的中心索引
题目描述:寻找数组的中两侧数据和相等的下标;
反思:终于有一次示例都对了,最后提交后说有一个示例超时了/(ㄒoㄒ)/~~,虽然知道大循环套小循环占时间吧…看来还是尽量避免大循环套小循环吧。
知识点:利用两个单独循环,求总和后再进行左右求和sum*2-sum[i]==total,此时的数组下标为中心索引;
题解:轮转数组
题目描述:已知一个数组和k值,求右轮k次得到的数组
反思:附上自己代码,第一反应是采用切片的办法但没通过,意思是nums原数组并没有变动,底层理解问题,所以去扒底层了…
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
b = nums[n-k:]
nums=nums[:n-k]
nums = b + nums