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

 

以上是关于Leetcode- 初级数组的主要内容,如果未能解决你的问题,请参考以下文章

leetcode官方《初级算法》题集(一)数组

leetcode初级算法(数组)——从数组中删除重复项

LeetCode初级-12-移动0

数据结构和算法LeetCode,初级算法-旋转数组

LeetCode初级-11-两个数组的交集

数据结构和算法LeetCode,初级算法-6两个数组的交集 II