Day9

作者: wendy_要努力努力再努力 | 来源:发表于2017-11-07 14:04 被阅读0次
    1. Remove Duplicates from Sorted List
      **思路:这是第二次刷到链表题了,对于链表的结点,如果它的next是None,那么next的val属性不存在,这就是我在代码里if那个语句写错的原因。返回头部,即返回了整个链表。
    class Solution(object):
        def deleteDuplicates(self, head):
            """
            :type head: ListNode
            :rtype: ListNode
            """
            tmp = head
            while tmp:
                if tmp.next and tmp.val == tmp.next.val:
                    tmp.next = tmp.next.next
                else:
                    tmp = tmp.next 
            return head
    
    1. Merge Sorted Array
      **思路:不能开启新的空间,就应该从后往前合并,这样nums1才能存这么多东西;用了三个指针。代码注释里写了不用返回任何东西
    class Solution(object):
        def merge(self, nums1, m, nums2, n):
            """
            :type nums1: List[int]
            :type m: int
            :type nums2: List[int]
            :type n: int
            :rtype: void Do not return anything, modify nums1 in-place instead.
            """
            p , q , k = m-1 , n-1 , m+n-1
            while p >= 0 and q >= 0:
                if nums1[p] > nums2[q]:
                    nums1[k] = nums1[p]
                    p , k = p-1, k-1
                else :
                    nums1[k] = nums2[q]
                    q , k = q-1 , k-1
            
            nums1[:q+1] = nums2[:q+1]
    

    到现在,虽然做的都是easy题,但是遇到了链表、堆栈、哈希等数据结构。还没遇到过队列。这些知识我在本科的《数据结构与STL》里都学过,但是没有实际运用起来,想当年还是全班最高分,可又有什么用。

    相关文章

      网友评论

          本文标题:Day9

          本文链接:https://www.haomeiwen.com/subject/huxjmxtx.html