蓝桥杯第九天

一力扣88

在这里插入图片描述

  • 如果我们从正面比较然后更迭的话,就会产生nums1中有的数被更跌后就会被占用,因此消失
  • 为了解决这个问题,我们从后往前跌打,使用双指针记录比较的末尾值,然后进行迭代,从而在索引上更迭正确的值
  • 这个方式有一个疑问,就是有可能一方更迭玩,一般是nums2,所以我们在末尾还要补充连上另一个的列表的代码
class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
       
        a=m-1
        b=n-1
        index=m+n-1
        while a>=0 and b>=0:
            
            if nums1[a]>nums2[b]:
                nums1[index]=nums1[a]
                a-=1
                index-=1
            else:
                nums1[index]=nums2[b]
                b-=1
                index-=1

        if b<0:
            while b>=0:
                nums1[index]=nums2[b]
                b-=1
                index-=1

        return nums1

二 力扣题目89

在这里插入图片描述

  • 好吧我自首,我看不懂,只能学题解思路,真累,题目都不明白,什么是格雷编码我没搞懂
  • 学题解的位运算也没明白太懂,位运算的与运算可以实现格雷编码的反转,然后每次将上一次反转的和原本的继续反转,大概就是这么个迭代,尽力了,题解看不太会。
class Solution:
    def grayCode(self, n: int) -> List[int]:
        
        res = [0]
        for i in range(1, (1 << n)):
            res.append(res[-1] ^ (i & -i))
        return res

三力扣题目104

在这里插入图片描述

  • 这就那个递归的深搜嘛思路如下
  • 每次递归给两个节点,每次递归都让深度加一,返回的时候返回左右两节点的最大值
  • 递归停止的时候就节点无了,直接返回0,说明搜不下去了
class Solution:
    def grayCode(self, n: int) -> List[int]:
        
        res = [0]
        for i in range(1, (1 << n)):
            res.append(res[-1] ^ (i & -i))
        return res

今日总结:
各类编码我不会。。其他的还好,学的明白,写的通透

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值