牛客网-剑指offer
pdswzd
这个作者很懒,什么都没留下…
展开
-
##剑指offer##JZ16合并两个排序的链表
题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路设置一个res空链表每次对两个链表的头结点的val进行比较,把较小的那个放到res链表中,然后移动头结点当某一个链表遍历结束时,跳出while,然后把另一个链表中剩余的结点一起放在res后面即可代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x#原创 2020-08-20 17:36:36 · 155 阅读 · 0 评论 -
##剑指offfer##JZ15反转链表
题目输入一个链表,反转链表后,输出新链表的表头。思路采用表头插入法,进行反转,与JZ3题是一样的方法代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode def ReverseList(self, pHead): # wr原创 2020-08-20 17:18:22 · 120 阅读 · 0 评论 -
##剑指offer##JZ14链表中倒数第k个结点
题目输入一个链表,输出该链表中倒数第k个结点。思路计算出链表的长度count计算出正向的index是多少(count-k)然后用for循环遍历到indexps:注意还要考虑k大于实际长度的情况,直接return,这个情况在实际编写过程中在这里插入代码片容易漏掉代码# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next原创 2020-08-20 17:10:18 · 118 阅读 · 0 评论 -
##剑指offer##JZ03从尾到头打印链表
题目输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路起初直观思路是把链表进行反转,但是发现官方解给的是最简单的方法,把val放到一个数组里,然后把数组倒叙输出即可。在面试的时候首要任务还是能够AC,看来能用简单的方法还是要首先考虑的最优解。代码class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code h原创 2020-08-20 15:32:04 · 159 阅读 · 0 评论 -
##剑指offer##JZ50数组中重复的数字
题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路用了lis作为列表空间,用hash的方法对出现的数字进行计数,当出现次数大于0时,返回重复值。代码class Solution: # 这里要特别注意~找到任意重复的一个值并赋值到duplication[0] #原创 2020-08-20 13:30:13 · 164 阅读 · 0 评论