2020-11-12笔记

猫狗队列问题

设计一个结构,既可以存储dog类对象也可以存储cat类对象,然后可以实现poll,add,isempty等操作
在这个结构里面有一个狗队列和一个猫队列,但是狗和猫的相对位置需要加入一个时间戳的概念
所以在队列里面加一个变量count来表示这个时间戳的概念,每加入一个宠物就count++,再存到宠物的队列里
然后弹出的时候,看猫的count小还是狗的count小,谁大返回谁的

转圈打印矩阵

按照分圈的结构把它解决掉,就单独某一圈来说写一个单元函数
这个单独的函数需要解决一下边界的问题,比如左边界=右边界的时候,只用打印一行或者一列就行了
写完单元函数以后,调用这个函数,每次把左上角往右下移动一位,把右下角往左上移动一位,然后写一个训完调用很多次就行了

原地进行矩阵旋转,不申请额外的空间

这其实和上面一样,还是一个单元函数的思想,虽然旋转的是整个矩阵,但我们仍然可以分别成一层一层的转,那么只需要写一层的函数就够了
对于单独一层来说就很好写了,举一个例子看一下怎么交换位置就可以了
注意如果是长方形没法写,数据结构都变了

之字打印矩阵

基础的思路还是写单元化的函数
设计两个点A和B,A往右走,B往下走,直到遇到边界,A到边界了就往下走,B到边界了就往往右走,直到A和B相遇了就结束打印了
然后在实现左上打印到右下(A打印到B)和右下打印到左上(B打印到A)的过程,用一个flag来变化
那么我们写的单元函数就是从一个点打印到另一个点的对角线,再宏观地对这个函数进行调度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值