2021-01-16

23、合并K个升序链表

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution:

    def mergeKLists(self, lists: List[ListNode]) -> ListNode:

        import heapq

        dummy = ListNode(0)

        p = dummy

        head = []

        for i in range(len(lists)):

            if lists[i] :

                heapq.heappush(head, (lists[i].val, i))

                lists[i] = lists[i].next

        while head:

            val, idx = heapq.heappop(head)

            p.next = ListNode(val)

            p = p.next

            if lists[idx]:

                heapq.heappush(head, (lists[idx].val, idx))

                lists[idx] = lists[idx].next

        return dummy.next

24、删除排序数组中的重复项

class Solution:

    def removeDuplicates(self, nums: List[int]) -> int:

        lenth = len(nums)-1

        if lenth > 0:

            for i in range(lenth):

                if nums[lenth-i] == nums[lenth-i-1]:

                    del nums[lenth-i-1]

        return len(nums)

33、搜索旋转排序数组

class Solution:

    def search(self, nums: List[int], target: int) -> int:

        if len(nums) == 0:

            return -1


        l = 0

        r = len(nums) - 1

        while l < r:

            mid = l + (r - l) // 2

            if nums[mid] < nums[r]:  # [mid, r]有序

                if nums[mid] < target <= nums[r]:

                    l = mid + 1

                else:

                    r = mid

            else:  # [l, mid]有序

                if nums[l] <= target <= nums[mid]:

                    r = mid

                else:

                    l = mid + 1

        return -1 if nums[l] != target else l

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,341评论 0 3
  • 设原始数据规模为n,需要采样的数量为k 先选取数据流中的前k个元素,保存在集合A中; 从第j(k + 1 <= j...
    Impossible安徒生阅读 335评论 0 0
  • 一趟结束后能够确定一个元素的最终位置的排序方法有: 简单选择排序、快速排序、冒泡排序、堆排序 稳定性定义:排序前后...
    Zak1阅读 330评论 0 0
  • <center>#51 N-Queens</center> link Description:The n-quee...
    铛铛铛clark阅读 1,098评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,924评论 0 5

友情链接更多精彩内容