LeetCode.python.Array.1-5

LeetCode.Array.easy

1. 1 TwoSum

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        if len(nums) <= 1:
            return False
        buf_dict = {}
        for i in range(0, len(nums)):
            if nums[i] in buf_dict:
                return [buf_dict[nums[i]], i]
            else:
                buf_dict[target-nums[i]] = i
        return False

2. 26 Remove Duplicates from Sorted Array

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if (len(nums) == 0):
            return 0
        i = 0;
        for j in range(0, len(nums)):
            if (nums[j] != nums[i]):
                i += 1
                nums[i] = nums[j]
        return i + 1
class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums[:] = sorted(list(set(nums)))
        return len(nums)

3. 27. Remove Element

class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        i = 0
        for j in range(0, len(nums)):
            if (nums[j] != val):
                nums[i] = nums[j]
                i += 1
        return i;
class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        n = len(nums)
        i = 0
        while (i < n):
            if (nums[i] == val):
                nums[i] = nums[n-1]
                n -= 1
            else:
                i += 1
        return n

4. 35. Search Insert Position

class Solution:
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        low = 0
        high = len(nums)-1;
        while (low <= high):
            mid = int((low + high) / 2)
            if (nums[mid] == target):
                return mid;
            elif (nums[mid] > target):
                high = mid - 1
            else:
                low = mid + 1
        return low

5. 53 Maximum Subarray(类似于《剑指offer——连续子数组的最大和》)

class Solution:
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        sum_max = nums[0]
        sum_tmp = nums[0]
        for i in range(1, len(nums)):
            if (sum_tmp <= 0):
                sum_tmp = nums[i]
            else:
                sum_tmp += nums[i]
            sum_max = max(sum_max, sum_tmp)
            # print(i, sum_tmp, sum_max)
        return sum_max
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 雏菊夹子阅读 1,252评论 0 1
  • 真正意义上来说,无锡特产有三种:梅花糕,玉兰饼,油面筋。 新生路28号有家卖梅花糕的,老旧的招牌上写着梅花糕。梅花...
    dtgxly阅读 3,375评论 0 1
  • 在我产后的第五周,我决定要去参加一个为期7天的瑜伽培训。当时所有人的第一反应都是:孩子吃奶怎么办?你身体吃得消吗?...
    娟老诗阅读 2,425评论 1 3

友情链接更多精彩内容