当前位置: 首页>移动开发>正文

剑指offer(第2版)

4/75

03.找出数组中重复的数字

剑指offer(第2版),第1张
03

try1: 遍历 超时 剑指offer(第2版),O(n^2),第2张

class Solution:
    def findRepeatNumber(self, nums: List[int]) -> int:
        for i in range(len(nums)-1):
            for j in range(i+1,len(nums)): # 第一次写忘记+1了
                if nums[i] == nums[j]:
                    return nums[I]

try2: 字典 剑指offer(第2版),O(2n),第3张

class Solution:
    def findRepeatNumber(self, nums: List[int]) -> int:
        dic = {}
        for i in range(len(nums)):
            if nums[i] not in dic:
                dic[nums[i]] = 1
            else:  # 下面多余
                dic[nums[i]] += 1
        for i in dic.keys():
            if dic[i] > 1:
                return i # 第一次写错为了return dic[I]

try3:改进字典 剑指offer(第2版),O(n),第4张

class Solution:
    def findRepeatNumber(self, nums: List[int]) -> int:
        dic = {}
        for i in range(len(nums)):
            if nums[i] not in dic:
                dic[nums[i]] = 1
            else:
                return nums[I]
            

04.在二维数组中查找其是否包含指定元素

剑指offer(第2版),第5张

题解:将矩阵旋转45度,会发现每个元素的左边元素小于它,而右边元素大于它


剑指offer(第2版),第6张

05. 替换空格

剑指offer(第2版),第7张

try1: 利用字符串相关的函数


剑指offer(第2版),第8张

题解:不用自带函数的解法 遍历


剑指offer(第2版),第9张

06.打印链表

剑指offer(第2版),第10张

try1: 利用数组的索引进行插入


剑指offer(第2版),第11张

try2: 递归 利用python特性,把当前head.val加在前部,直到head不存在,即 head=None为结束标志


剑指offer(第2版),第12张

https://www.xamrdz.com/mobile/4j71903002.html

相关文章: