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)
View Code

 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
View Code

3、旋转数组

给定一个数组,将数组中的元素向右移动 个位置,其中 是非负数

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
View Code

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
View Code

 

posted @ 2018-05-08 23:28  adminyzz  阅读(144)  评论(0编辑  收藏  举报