Leetcode- 初级数组
Posted autoyzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode- 初级数组相关的知识,希望对你有一定的参考价值。
1 、从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
备注:是一个排序数组
1 class Solution: 2 def removeDuplicates(self,nums): 3 i =0 4 while i < len(nums)-1: 5 if nums[i+1] == nums[i]: 6 nums.remove(nums[i+1]) 7 i +=1 8 return len(nums)
2、买卖股票的最佳时机 2
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
备注:不能同时参与多笔交易
1 class Solution: 2 def maxProfit(self,prices): 3 """ 4 :type prices: List[int] 5 :rtype:int 6 """ 7 sum = 0 8 for i in range(1,len(prices)): 9 a = prices[i]-prices[i-1] 10 if a >0: 11 sum = sum + a 12 return sum
3、旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数
1 class Solution: 2 def rotate(self,nums,k): 3 i =0 4 while i < k: 5 nums.insert(0,nums.pop()) 6 i +=1
4、存在重复
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
1 class Solution: 2 def containDuplicate(self,nums): 3 nums1 =set(nums) 4 if len(nums1) == len(nums): 5 return False 6 else: 7 return True
以上是关于Leetcode- 初级数组的主要内容,如果未能解决你的问题,请参考以下文章